[Runtime Model] Refactor the Application Storage system.

Rename ApplicationStore to ApplicationStorage, DBStoreSqliteImpl to
ApplicationStorageImpl.

Add the system events setter/getter method in ApplicationData, so that
all application related information can be cached in it.
[Android] Check webview legacy api for external protocol handling first

Crosswalk provides two ways for embedders to extend protocol handling.
1. The same api as legacy webview api in XWalkContentsClient,
   shouldOverrideUrlLoading().
2. Extends XWalkNavigationHandler.

By default, xwalk doesn't do anything in shouldOverrideUrlLoading, but
handles action uri in XWalkNavigationHandler.
To avoid the case that some embedder override shouldOverrideUrlLoading
in the way conflicts with what xwalk already did in XWalkNavigationHandler,
calling shouldOverrideUrlLoading prior to invoke XWalkNavigationHandler
so that embedders won't get confused.

BUG=https://crosswalk-project.org/jira/browse/XWALK-654
[Android] Correct the error message for embedded sample app

Change to more general term:
"Crosswalk failed to initialize."
The detail information about the failure will be shown in
the pop up dialog.

BUG=https://crosswalk-project.org/jira/browse/XWALK-649
Query the number of presentation displays when extension is created.

In some case, e.g. in cordova container, onResume method won't get
called at startup, it is called only when resuming from background
status.

This fix can make sure that presentation.displayavailable flag won't
depend on the fact if PresentationExtension::onResume gets executed.
Bump version to 3.32.54.0
[Extensions] Move kXWalkExternalExtensionsPath to extension switches

So that both xwalk_runtime and xesh (the test shell for extensions) can
use it. This prepares to make xesh build do not depend on the rest of
the runtime.

I was avoiding moving this constant here because it was not necessary
for extension system. But given the multiple users, I consider extension
itself a fair place to store this constant.
[Extensions] Make xesh depend only on what it uses

Currently xesh (XWalk extension test shell) depends on the entire
xwalk_runtime target. This is not needed, since the shell was designed
to use only Extension system.

One drawback of the current approach is that unrelated changes end up
forcing a recompilation of xesh, this have some impact when running
ninja without target parameters.

Instead of depending on the xwalk_runtime target, this patch makes xesh
depend directly on the base libraries and include the sources from
extensions.gypi.

This could be further improved by making extension system itself into a
static library, used both by xwalk_runtime and xesh. This would avoid
compiling the extension system files for each target.
[Extensions] Compile extensions as a static library

Since extensions shouldn't depend on other parts of Crosswalk, we can
compile it as a static library. One advantage is that now both
xwalk_runtime and xesh depend on that library, avoiding multiple
compilation of some source files.
Merge pull request #1335 from cmarcelo/extensions-as-static-library

[Extensions] Compile extensions as a static library
[Extensions] Change when we create the extensions

This patch changes slightly when we create the extensions, instead of
calling XWalkExtensionService::OnRenderProcessHostCreated() and waiting
for the delegate functions to be called, the interface now expects
vectors to be passed with the extensions.

There are three upsides:

- At extension creation time we have the reference to RenderProcessHost,
  allowing us to pass that to the extensions (and in the future pass the
  Application, which will have 1-1 relationship with RPH).

- We don't need to expose the XWalkExtensionServer. A full object
  interface was being included and passed around, just for using one
  function. Exposing less objects gives us more freedom to change things
  in the future.

- We simplify the usage of XWalkExtensionService, by removing the use of
  Delegate for creating the extensions.

There are two downsides, which I consider minor compared to the
benefits:

- It's not clear in the type that ownership is being passed to
  XWalkExtensionService. It is documented and we can add a more clear
  type in the future. For now we can live with this.

- We don't have the information whether the extension was registered
  successfully or not from the tests. However, other later assertions
  assured that the test passed.

The patch is quite big because we changed all the plumbing in the tests.
Bump version to 3.32.55.0
Merge pull request #1308 from wang16/reorg_navigation

[Android] Check webview legacy api for external protocol handling first
[Android] Disable 2 extensions for application and application event.

Currently these 2 extensions are not supported on Android port.
Disable them since they're not supposed to work because it makes crashes.
Will enable them once Android port starts to fix them.

BUG=https://crosswalk-project.org/jira/browse/XWALK-674
Merge pull request #1306 from wang16/runtime_warn

[Android] Correct the error message for embedded sample app
Merge pull request #1337 from yongsheng/fix674

[Android] Disable 2 extensions for application and application event.
Merge pull request #1310 from hmin/hot-fix-presentation-api

Query the number of presentation displays when extension is created.
Merge pull request #1239 from takethathe/db_refactor

[Runtime Model] Refactor the Application Storage system.
[Extensions] Build fix

Fixes linking errors when building with component=shared_library.

undefined reference to 'WebKit::WebScopedMicrotaskSuppression::initialize()'
undefined reference to 'WebKit::WebFrame::frameForCurrentContext()'
undefined reference to 'WebKit::WebScopedMicrotaskSuppression::reset()'
undefined reference to 'WebKit::failedAssertion(char const*, int, char const*, char const*)'
undefined reference to 'AnnotateHappensAfter'
undefined reference to 'AnnotateHappensBefore'
undefined reference to 'AnnotateHappensAfter'
Merge pull request #1341 from tmpsantos/xesh_build_fix

[Extensions] Build fix
Fix warnings in Tizen build

Tizen uses an old G++ version, but doesn't hurt keeping its build
warning free when possible.

Three cases of initialization list ordering mismatch and one case of G++
considering taking 0 as a signed literal and concern about comparing
unsigned (size_t) with signed (the literal).