[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
[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.
[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
[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.
[Application] Move package details inside ApplicationService

These are details for package installation that belong to
ApplicationService object, which is responsible for installation and
uninstallation of packages.
Merge pull request #1059 from tmpsantos/raw_socket3

[SysApps] Raw Socket API implementation
Build fix, destructor must be virtual

RuntimeRegistryObserver has virtual methods, so destructor must be virtual.
This check is enforced on the Mac and the build fails.
Don't use namespace directive in global context in header

On Mac, the build fails with
../../xwalk/sysapps/raw_socket/raw_socket_object.h:11:31: error: using namespace directive in global context in header [-Werror,-Wheader-hygiene]
Merge pull request #1074 from hmin/extension-refactor

[Android] Refactor Java extension system