[Android] Refactor Java extension system

The commit is to decouple the extension from XWalkRuntimeViewProvider
and simplify the interfaces exposed by XWalkRuntimeViewProvider. Now it
is easy to use the extension system by creating a new
XWalkExtensionManager.

The backend implementation for XWalkExtension is abstracted as
XWalkExtensionBridge interface. Currently, one backend implementation
based on xwalk core is provided as default.

BUG=https://crosswalk-project.org/jira/browse/XWALK-148
[Extensions] Fix race condition in EPH, fix flaky CloseNativeWindow

The message filter used by EPH in certain conditions could try to post a
task to UI thread calling EPH. If EPH is destroyed and the message is
still enqueued, we crash.

The MessageFilter was posting a task instead of directly calling in IO
thread because EPH was trying to remove the filter, since we need to
track that message only once. Removing the filter should be called from
the UI thread (which is the "client" thread for IPC::SyncChannel).

This patch makes the code correct, removing the flaky crashes in
CloseNativeWindow browsertest. Next patches will address the TODO item
added by this patch: whether we can use only one MessageFilter.

I split the code this way so we choose whether we apply just this fix to
the current Beta branch or the remaining changes.

BUG=https://crosswalk-project.org/jira/browse/XWALK-153
[Android] Add content scheme support

The content scheme is for the Uris used by android content
provider. They are commonly used on android to retrieve
resources.

For detail information of android content provider, please referring
http://developer.android.com/guide/topics/providers/content-providers.html.

BUG=https://crosswalk-project.org/jira/browse/XWALK-165
TEST=org.xwalk.core.xwview.test.LoadUrlTest#testContentUrl
[Android] Add extension JS files to runtime client embedded shell

Fixes bug that runtime client embedded shell can not find Javascript
stubs of runtime internal extensions.

BUG=https://crosswalk-project.org/jira/browse/XWALK-126
[Mac] Fix the build

[chromium-style] Overriding method must have "virtual" keyword.
V8 profiling patch
Fixed the patch_util script
[Android] Fix XWalk crash issue when exiting if remote debugging is enabled.

The root cause is that DevToolsHttpHandlerImpl::Stop has been called before
DevToolsClientHostImpl::InspectedContentsClosing. In that case, the thread
is released and message loop is set to null, so XWalk crashes.

The fix is to change the teardown sequence to destory view first, then shutdown
remote debugging server.

BUG=https://crosswalk-project.org/jira/browse/XWALK-312
Merge pull request #1079 from dp7/master

Merge V8 XDK profiling patch.
Merge pull request #1099 from cmarcelo/eph-fix

[Extensions] Fix race condition in EPH, fix flaky CloseNativeWindow
[Android] Handle android Action Uris

These Uris are used for android intent to start
activities to:
1. make phone calls;
2. send sms;
3. send emails;
4. look up map for geolocation;
5. search apps in market.

BUG=https://crosswalk-project.org/jira/browse/XWALK-226
    https://crosswalk-project.org/jira/browse/XWALK-155
    https://crosswalk-project.org/jira/browse/XWALK-154
TEST=org.xwalk.core.xwview.test.HandleActionUriTest
Merge pull request #1115 from huningxin/remote-debugger-crash-fix

[Android] Fix XWalk crash issue when exiting if remote debugging is enab...
[Android] Add version number tracking for packing tool.

The version number of packing tool is the same as that of XWalk.
With the version, it would be easier to track bugs for packing tool.
Usage: python make_apk.py -v

BUG=https://crosswalk-project.org/jira/browse/XWALK-163
Merge pull request #1087 from junmin-zhu/version

[Android] Add version number tracking for packing tool.
[Android] Fix the issue that geolocation information can't be fetched.

The geolocation related Web API can't work due to the problem of crosswalk.
The root cause is that the activity status is not initialized so that
internal features like location provider can't get the correct status.
Fix it by passing the application to content layer and add the permissions
in AndroidManifest.xml.

BUG=https://crosswalk-project.org/jira/browse/XWALK-151
[SysApps] Add Raw Sockets stub

Just the skeleton to serve as base for the interfaces implementation. No API is
currently exposed.
[SysApps] Add the TCPSocket implementation

This is the initial implementation of the W3C's Raw Sockets TCPSocket interface.
It is not complete but is fully functional. Some issues with the spec are being
worked with the standardization body, like the fact that the send() method is
technically sync (although we implement as async always returning true).

A notable missing feature is the throwing of exceptions on invalid parameters,
but the error callback is still called under these circumstances.

We also add the RawSocketObject class. This class is going to concentrate all
the shared code among the different interfaces of the Raw Socket API. Currently only
the ReadyState is shared.
[SysApps] Make it possible to create a TCPSocket from a connected socket

The TCPServerSocket will need to create a TCPSocket from incoming connections.
This patch makes it possible to create an object in the native side first and
handle the identifier to the JavaScript context.
[SysApps] Add TCPServerSocket implementation

Added an incomplete but functional implementation of the
Raw Sockets TCPServerSocket interface.
[SysApps] Add browser tests for the Raw Socket JavaScript API

Tests if the objects are leaky and if the basic functionality like
send and receive data works. These tests are not API conformance tests.