[Android] Refine the xwalk_core_test_apk target

This fix is to refine the test target to make it more cleaner to add
HTML testing file as apk asset file. Right now, when adding a new HTML
file for testing, you just need to update the 'sources' list without
adding a new entry item in 'copies' list.
[Tizen] Fix Glib assertion due to appcore_context.

This patch get rid of following log:
[ERROR:browser_main_loop.cc(228)] GLib: g_source_destroy: assertion `source != NULL' failed

AppcoreContext::Initialize() fails when we launch xwalk in the shell. e.g. > xwalk
It is because appcore_init() can success only if registered application (e.g.
web applications) is launched.

This patch handles the exception that AppcoreContext::Initialize() fails.
Fix build for Windows.

Windows switched to Aura therefore we need to remove the old code
path and use the generic method to access the title. The compilation
failure was due to the fact that NativeWindow type is not anymore
a HWND.

BUG=936
Bump version to 2.31.21.0
Merge pull request #931 from hmin/refine-test-target

[Android] Refine the xwalk_core_test_apk target
[Android] Remove the wrong dependence in runtime client test apk.

This patch will resolve the issue about wrong dependence in the runtime
client test apk.
In file CrossPackageWrapper.java, the constructor function "CrossPackageWrapper()"
has the judgement about the class loaded. In shared mode, the core shell is not
needed for the runtime client test shell.

BUG=#916
Merge pull request #917 from wuhengzhi/shared_issue

[Android] Remove the wrong dependence in runtime client test apk.
[Android] Fix #705 to support multiple frames for extension mechanism

When there are multiple frames in one page, extension instance will
be created for each frame. But as internal WebFrame is not exposed
in Java side, there is no way for Java side to identify which
instance to send message. This patch exposed instanceID up to Java
side when it receives message which can be used to identify the
target instance when post message to JavaScript side. What's more
a new interface "broadcastMessage" was added to meet the requirement
that Java side may need to broadcast message to all exiting instances.

Changed interfaces for Java extension:
1. postMessage(String msg) -> postMessage(int instanceID, String msg)
2. onMessage(String msg)   -> onMessage(int instanceID, String msg)
3. onSyncMessage(String msg) -> onSyncMessage(int instanceID, String msg)
4. new added: broadcastMessage(String msg)

BUG=#705
[Android] Fix text selection menu being auto-dismissed in some cases

In previous xwalk implementation, the load operation will trigger
a pair of clear/request focus operation. Which makes the text selection
context menu hide immediately after it shows sometimes.

The fix is to only request focus when loading url.
Merge pull request #950 from wang16/cordova_txt_sel

[Android] Fix text selection menu being auto-dismissed in some cases
Merge pull request #935 from ds-hwang/appcorebug

[Tizen] Fix Glib assertion due to appcore_context.
Merge pull request #907 from DonnaWuDongxia/multi-frame-support-in-one

[Android] Fix #705 to support multiple frames for extension mechanism
Merge pull request #938 from darktears/win-test-fix

Fix build for Windows.
[Windows] Remove uneeded files after the move to Aura.

We don't need these files as we moved to Aura. They are excluded
from the build upstream.
[Extensions] Add XWalkJSModule

A XWalkJSModule implements the XWalkNativeModule interface by executing
a JavaScript code everytime an instance is required. This allow us to
easily provide JS helpers and libraries to extension writers.

This will be used to remove the global definitions we use for "internal
extensions" functionality.
[Extensions] Change how "internal extension" helper is exposed

When writing extensions inside Crosswalk, we have the option of
generating an input validator / parameter serializer based on an IDL
file.

We exposed this facilities inside a "xwalk" namespace and wrapped them
for each extension being loaded. Unfortunately this also ended up
exposing these functions to web content.

This patch changes the code to use the new XWalkJSModule. The setup
process became a different, now extensions that use this facility,
should do:

   // Setup for using the facilities.
   var internal = requireNative("internal");
   internal.setupInternalExtension(extension);

   // And to post a message.
   internal.postMessage(...);

Most of the code used to create an 'internal' variable anyway, so in
practice this change affects only the setup.
Merge pull request #957 from cmarcelo/js-module

[Extensions] Add support for requiring JS modules
Merge pull request #955 from darktears/win-fix-aura

[Windows] Remove uneeded files after the move to Aura.
[Extensions] Add SetExtraJSEntryPoints to Extension C API

This will allow for Extension to inform if they have other entry
points (apart from the implicit extension_name), that should cause
the extension to be loaded.

For example, let's start with an extension named 'xwalk.sample' that,
for whatever reason, needs to have a function in the 'xwalk' object,
let's say 'xwalk.SomeFunction'. The extension would need to use this
API to tell that it should also be loaded when 'xwalk.SomeFunction' is
accessed, if we want our load on demand functionality to work.

An additional internal API header is introduced to keep this new API
contained, until this idea is proven.
[Extensions] Add tests for loading extension with multiple entry points

This test verifies that the extension is loaded even if the entry point
is in a different object than the one implicitly created by the extension
name.