Addresses [Issue #761](http://code.google.com/p/phantomjs/issues/detail?id=761).
This is a squash of 5 commits.
1. Complete reimplementation of the CookieJar and the Cookie API - Part 1.
The save/load mechanism is inspired by the Qt Demo "browser".
More info: http://doc.qt.nokia.com/4.7-snapshot/demos-browser.html
2. Making the CookieJar a singleton.
We need to have multiple NetworkAccessManager to monitor the network activity of the page,
but we also need to maintain 1 CookieJar: in this way we now have a shared bucket of Cookies.
3. Exposing the new Cookies API to the JS space.
* Updated the completions.
* Ensured backward compatibility of the API.
* It's now possible to "phantom.cookieEnabled = false" to disable cookies completely.
* New methods: addCookie, deleteCookie, clearCookies
4. Provided some internal Doc for the new Cookies API
5. Ensuring the "page.deleteCookie(name)" method works only if a cookie name is given.
http://code.google.com/p/phantomjs/issues/detail?id=603
Squashed commit of the following:
commit 2087320b9549aa2bba53d73e8a681133e5b4fe96
Author: neraliu <neraliu@gmail.com>
Date: Sat Jul 14 20:55:17 2012 +0800
Improve the readability of the function CookieJar::setCookies and CookieJar::cookies.
commit 7ef076e9df488c8f82863cb9c6e31350af5eaad8
Author: neraliu <neraliu@gmail.com>
Date: Fri Jul 13 18:08:07 2012 +0800
Fix the indentation problem in the file cookiejar.cpp.
Remove some commented code segment in cookiejar.cpp.
commit d8fd7f49eb1ba0fb47c27aec9b3dcd36ca14f301
Author: neraliu <neraliu@gmail.com>
Date: Fri Jul 13 18:04:41 2012 +0800
Simplify the implementation of CookieJar::setCookiesFromUrl to use the same security policy of QNetworkCookieJar::setCookiesFromUrl in QtWebkit
commit f5e34d2b787bb9714c45a8ad0baff8b5282d3249
Author: neraliu <neraliu@gmail.com>
Date: Fri Jul 13 17:20:38 2012 +0800
Simplify the implementation of CookieJar::cookiesForUrl to use the same security policy of QNetworkCookieJar::cookiesForUrl in QtWebkit.
commit 5b10e3788cce7bd69bb71c7ee06f0b49e1e92228
Author: Nera Liu <neraliu@gmail.com>
Date: Mon Jun 25 10:56:32 2012 +0800
Remove the clearAllCookies() api by allowing to clear cookies by page.cookies = [] Javascript syntax.
commit a1f12b2913b6f3a3f11a2d22b5eb8c35bf62bf48
Author: Nera Liu <neraliu@gmail.com>
Date: Sun Jun 24 21:48:49 2012 +0800
Implement in-memory cookies storage for CookieJar allowing dynamic cookie manipulation via Javascript for issue 603.
Add sanity check for the in-memory cookies storage for CookieJar.
http://code.google.com/p/phantomjs/issues/detail?id=603