[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 mainly introduces two IPC communication pairs to support none
persistent main document, '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 pair will give render process a chance to do simple clean up
task before main document is finally closed.

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

It also add the command line option to set main document idle time and
suspending time, which gives user oppotunity to change and may also help
testing.
Add close main document browsertest