[Runtime Model] Introduce message IPC for xwalk runtime process and render process.

This CL adds the basic message IPC classes for implementation of
non-persistent main document.

The reason to add these IPC classes is to support Suspending state for the main
document, the suspending state gives the main document an opportunity to
call OnSuppend() function to do simple clean up task before the app is
closed.

The CL adds several message types for IPC between runtime
process and render process. For runtime process, we add
ApplicationRenderMessageFilter to handle messages from render process.
For render process, we add ApplicationDispatcher to handle messages from
runtime process.
[Runtime Model] Runtime side change to support none peristent main document.

This CL and above commit are to implement
https://crosswalk-project.org/jira/browse/XWALK-2.

This CL follows the Chromium way to close the event page, which uses
IPC to sync between renderer and browser process. Two IPC communication
pairs are introduced,
'ShouldSuspend'/'ShouldSuspendAck' as well as 'Suspend'/'SuspendAck'.

The first pair of message is to make sure main document is idle before
unloading. If we find the main document is not idle between the first
pair of IPC communication, the second IPC pair will be canceled, that is
to say, the main document won't enter suspending(closing) state.

The second IPC talk makes sure the renderer finishes onSupsend callback(which
is not implemented yet) and it is OK to close the main document.
The onSuspend callback will do simple clean up task.

The CL makes ApplicationProcessManager as an Observer for Runtime
objects. Therefore, whenever a Runtime object is added or removed, the
ApplicationProcessManager could be notified. Currently only Runtime object
change is taken into main document keeping alive consideration
Add close main document browsertest.