Added "page.close()" and "page.onClosing = function(page){}" callback.

* Addresses [Issue 678](http://code.google.com/p/phantomjs/issues/detail?id=678)
* "page.close()" deprecated "page.release()"
* the callback "onClosing(page)" gets back the reference to the closing page - that can be ideal to have 1 handler for all the page that close
* It works both when closing directly the page, or if the page closes by itself
* If parent closes, child close too

Tests provided.
Adding property "page.ownsPages".

When set to "true", any page that gets created, is
owned by the "page" that control it's lifetime.
Also, the pages can be found in the "page.pages[]" array.

Default value is "true".

Addresses [Issue #151](http://code.google.com/p/phantomjs/issues/detail?id=151)
Fixing wrong parameters manipulations in "page.evaluateAsync".
Adding and Removing appropriate auto-completions (REPL).
Adding support for more Mouse Events.

Support for Mouse Events: Left-click, Right-Click, Middle-Click and Double-Click.
Addresses [Issue 712](http://code.google.com/p/phantomjs/issues/detail?id=712)
Adding "url" and some frame-related Q_PROPERTIES

* url - current page url
* frameUrl - current frame url
* frameContent - current frame HTML content
* framePlainText - current frame content in Plain Text (no tags)

Fixes [Issue #758](http://code.google.com/p/phantomjs/issues/detail?id=758)
Cleaning up some useless TODO left in the code.
Redesign the Cookies API

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.
Enumerate some important changes for the upcoming 1.7.

http://code.google.com/p/phantomjs/issues/detail?id=764
README: Mention the Contribution Guide as early as possible.
Mocha tests can run with PhantomJS.

See https://github.com/metaskills/mocha-phantomjs.
Update src/config.cpp

This is a patch to resolve issue i reported in ticket 773 <http://code.google.com/p/phantomjs/issues/detail?id=773>. 
I did build it and run tests seems to be working fine.

I hope this helps a bit :) Also i'm sending friday hugs to everyone on the team.
Merge pull request #314 from JakubOboza/patch-1

Update src/config.cpp
Render ICO images on Windows.
ICO images are not rendered on Windows due to missing ICO plugin.

Issue: http://code.google.com/p/phantomjs/issues/detail?id=779
Merge pull request #317 from Vitallium/fix-missing-ico-plugin-win

Rendering ICO images on Windows.
Maintain m_currentFrame as opposed to using QWebPage's currentFrame().

Currently focused frame made available with page.focusedFrameName and page.switchToFocusedFrame.

http://code.google.com/p/phantomjs/issues/detail?id=683
Treat all args after the script name as script args

This fixes CapserJS which builds a command line like this:
phantomjs bin/bootstrap.js --casper-path=~/capserjs --cli

That works on Phantom 1.6 but not on master due to the qcommandline
port.

Fix by extending qcommandlne to take a ParameterFence flag which causes
it to treat any options after a parameter as arguments. Switch
"scriptname" to use that so the 1.6 behaviour is restored.

http://code.google.com/p/phantomjs/issues/detail?id=55
Remove the dirty link hack for a static PhantomJS + MSVC.

http://code.google.com/p/phantomjs/issues/detail?id=753
Use GitHub contributing guide feature.

See https://github.com/blog/1184-contributing-guidelines.

http://code.google.com/p/phantomjs/issues/detail?id=783
Fix the link to the contribution guide.

http://code.google.com/p/phantomjs/issues/detail?id=783