Add ApplicationRendererController to handle application launched message

ApplicationRendererController will handle application control messages sent to
the renderer and stores renderer application related state.

ApplicationProcessManager will observe renderer process creation notification
and send serialed currently launched application info to renderer. The
ApplicationRendererController in renderer side will handle this message. The
ApplicationRendererController will be created as a singleton for application
extension native module access.
Add application extension and getManifest(), getMainDocument() API support

The application extension is an internal extension to handle application level
APIs(e.g., runtime model events, get manifest, package management, etc.). In
this commit two APIs is added, one is xwalk.application.getManifest(see
http://developer.chrome.com/apps/runtime.html#method-getManifest), the other is
xwalk.application.getMainDocument(see
http://developer.chrome.com/apps/runtime.html#method-getBackgroundPage).

getManifest() is synchronous, so a "getManifest" native handler is implemented
in render side to transfer launched app info from ApplicationRendererController.
getMainDocument() is asynchronous, so the JS wrapper code will first get the
main document routing ID from browser process, then get the window object of
the main frame from the "getMainDocumentByID" native handler.
Add application API browser test for getManifest and getMainDocument