New WebPage#setContent api - possible to specify location along with content

http://code.google.com/p/phantomjs/issues/detail?id=909
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
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
More changes for the upcoming 1.7.

http://code.google.com/p/phantomjs/issues/detail?id=764
Redesign the Cookies API (part 2)

Addresses [Issue #761](http://code.google.com/p/phantomjs/issues/detail?id=761).

This is a combination of 5 commits.

1. Date in Cookie can be set via "seconds since epoch" as well.

* In addition to the current string format, we can now set cookies via integer of msec since epoch
* Expiration date can be set via "expires" or "expiry" option ("expires" has priority)
* Returned cookie will contain "expires" as string and "expiry" as msec since epoch

I believe this can simplify code that uses cookies and it doesn't change the functionality.

2. Applying the "--debug" command line options as early as possible.

3. Fixing bug and behaviour in the CookieJar

* It's not possible to set a cookie without a domain: will default to the domain of the page it's set on
* "page.clearCookies()" was broken
* "cookiejar.deleteCookie("name", url)" reimplemented because deleting via "expiration" doesn't work

4. Improving (and more fixing) in the CookieJar

* Purging Session or Expired Cookies now works
* Added boolean return values to inform if the requested cookie operation succeeded
* Timestamps for "expiry/expires" in Milliseconds, as JS does by default
* Improved detection that a cookie has been accepted or rejected by the cookiejar

NOTE: Unfortunately, the Qt provided QNetworkCookieJar is a very limited
and not extremely well designed solution. It doesn't provide any "nice
and clean" CRUD API, and you are only left with a SET/GET to deal with.
Mechanism to understand when and when not a cookie is added are hidden,
and require extra work in the sub-class (our CookieJar) to fill the gap.

5. Methods on the "phantom" object to manipulate the CookieJar.

* phantom.cookies (array of JSON/Cookies)
* phantom.cookiesEnabled (boolean)
* phantom.addCookie
* phantom.deleteCookie
* phantom.clearCookies

Those methods operate on the CookieJar directly and have no URL restriction.
In other words, if page P1 can see set of cookies C1, and page P2 can see set of
cookies C2, "phantom.cookies" can see (i.e. operate upon) both C1 and C2.
Git-ignoring debugging-helper on mac
Made the "Callbacks injection" recursive.

Before this, only the first level of child frames had the possibility to use
the Callbacks object. Now is injected recursively in all of them.

This is an extension of coverage for [Issue #683](http://code.google.com/p/phantomjs/issues/detail?id=683).
Contribution guide: highlight various aspects of communication.

http://code.google.com/p/phantomjs/issues/detail?id=783
Fix --help and --version

https://code.google.com/p/phantomjs/issues/detail?id=789
Make the key enums as part of WebPage instance.

This way, we don't add anything into phantom object.

http://code.google.com/p/phantomjs/issues/detail?id=492
Windows: Use ARGB32 premultiplied to have better font rendering.

Thanks to Vitaliy Slobodin for the analysis.

http://code.google.com/p/phantomjs/issues/detail?id=785
Keep ARGB32 premultiplied format for Windows for the time being.

http://code.google.com/p/phantomjs/issues/detail?id=785
Revert "Fix crash on exit (Issues #136, #148 and #149)"

This reverts commit 5acaa6b42d510f529ea77507f678b114bac73d9c.

Conflicts:

	src/phantom.cpp
	src/phantom.h

removed m_page deletion.

http://code.google.com/p/phantomjs/issues/detail?id=719
Changed CSS selector used when checking for whether tests have finished.

When using the jasmine 1.2.0 standalone version, `.runner .description`
doesn't seem to match any elements.

I noticed pending tests can be found using the CSS selector
`.symbolSummary .pending`, so changed the testFx callback to check
that no elements are left matching this selector.

http://code.google.com/p/phantomjs/issues/detail?id=792
Test failure CSS selectors changed.

Changed the CSS selectors used to identify failed tests.

The old selector was `div.jasmine_reporter > div.suite.failed`,
but this no longer seems to match any elements.

The new selector is `.results > #details > .specDetails.failed`. For each
failing test the `.description` and `.resultMessage.fail` elements are
used to output the failures to the console.

http://code.google.com/p/phantomjs/issues/detail?id=792
Added 'tests passed' message.

If all tests pass, a message indicating this is output to the console.

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