Add WebPage.setCookies and WebPage.cookies apis for the issue 354.

Add sanity check for the cookies api in test/webpage-spec.js.

http://code.google.com/p/phantomjs/issues/detail?id=354
Adding a new "evaluateAsync" on the "webpage" object.

This is useful in case:
* we don't care about the result of the evaluate
* we don't need to have the result of the evaluate on the spot
* we need the stack of execution to begin WITHIN the page

Also, linting code: everyone should use a linter when writing Javascript. Everyone.

http://code.google.com/p/phantomjs/issues/detail?id=593
Adding "window.phantomCallback()" within the page context.

The callback is harmless: if the user registers a "page.onCallback = [Function]",
that will receive any JS type passed via "phantomCallback()".
Also, if the handler for ".onCallback" returns a value, that is passed back as a
return value of "phantomCallback()".

Also, added "page.onConfirm" and "page.onPrompt".
This solves [Issue #133](http://code.google.com/p/phantomjs/issues/detail?id=133).
Another tweak for "evaluateAsync".

Making sure all the parameters are passed on correctly.

http://code.google.com/p/phantomjs/issues/detail?id=593
Render page as a base64 string.

Provided API for the Webpage object:
- renderBase64PNG()
- renderBase64JPG()
- renderBase64BMP()

Addresses [Issue #547](http://code.google.com/p/phantomjs/issues/detail?id=547).
Allow debug/warning messages to be enabled at runtime.

https://code.google.com/p/phantomjs/issues/detail?id=575
Do not attempt to compile PhantomJS if the Qt compile failed.

http://code.google.com/p/phantomjs/issues/detail?id=226
Fix error handler when error is null.

http://code.google.com/p/phantomjs/issues/detail?id=589
Add navigation event hook to PhantomJS.

http://code.google.com/p/phantomjs/issues/detail?id=562
Adding the ability to switch between frames.

1. Passing JavaScript eval and other related actions to the CurrentFrame, not the MainFrame.
2. Added different methods to navigate between frames
3. With a call to "window.frames[0].focus()", the "currentFrame" changes: commands after that are sent to the new frame under focus.
4. The navigation between frames allows to walk over the "tree of frames" contained in the page.

This commit also adds examples (both in JS and CoffeeScript) and Unit Test.

http://code.google.com/p/phantomjs/issues/detail?id=573
Adding property "os" to the "system" module.

Contains the properties:
- name
- architecture
- version

http://code.google.com/p/phantomjs/issues/detail?id=585
Adding missing completions on the "WebPage" object

http://code.google.com/p/phantomjs/issues/detail?id=573
http://code.google.com/p/phantomjs/issues/detail?id=547
Simplify the cookies api as property setter and getter for issue 354.

Update the test case for the cookies api.

http://code.google.com/p/phantomjs/issues/detail?id=354
Fix an indentation problem in the file test/webpage-spec.js.
Fixing a compilation problem on Ubuntu 10.04 64bits

Return type for 'window.callPhantom', in case no handler is set, has to be 'null', not '0'

http://code.google.com/p/phantomjs/issues/detail?id=133
Build script: don't fail too early.

set -e causes the check for compile jobs environment variable to quit
the script too early. Avoid this by guarding the check properly.

http://code.google.com/p/phantomjs/issues/detail?id=226
Localize variables.

This is to avoid adding a onError handler to the page that exists in the
outer scope.

https://code.google.com/p/phantomjs/issues/detail?id=166
Don't pass an error object to the onError callback.

On reflection, this approach seems like a bad idea and a source of bugs.
I think passing object references between pages seems inherently
problematic, and we are better off just passing data to the onError
handler. If users need the actual object reference, they are able to use
try ... catch within the page.

This change also means that we are no longer breaking backwards
compatibility with the page.onError function signature.

WebCore already has a bunch of plumbing to pass around stacks. This
exists for the inspector/console. However, we need to actually retrieve
the error stack in WebCore::reportException.

To achieve this, I am attaching a stackArray property to the error
object. This is not as clean as I'd like, but seems ok for now. (We
should not document stackArray though.)

https://code.google.com/p/phantomjs/issues/detail?id=166
Merge remote-tracking branch 'neraliu/cookiesapi'

Conflicts:
	src/modules/webpage.js
	src/webpage.h
Update Qt to the latest version 4.8.2.

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