[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
[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
[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
Merge pull request #1059 from tmpsantos/raw_socket3

[SysApps] Raw Socket API implementation
[Android] Refine the test case about onPause and onResume.

This patch refined the test case about onPause and onResume on
embedded and shared mode. It's for the runtime client.
Invoke onPause or onResume on main thread, wait for some seconds
to ensure that action is done, get the first title. Then wait for
some milliseconds, get the title again. Compare the two titles.

We can not use the TimerTask directly, because it creates an external
thread which was not executed when the main thread exits.

For embedded client test:
1. install XWalkRuntimeClientEmbeddedShell.apk
2. python build/android/test_runner.py instrumentation \
--test-apk=XWalkRuntimeClientEmbeddedTest -v -f testPauseResume

For shared client test:
1. install XWalkRuntimeLib.apk
2. install XWalkRuntimeClientShell.apk
3. python build/android/test_runner.py instrumentation \
--test-apk=XWalkRuntimeClientTest -v -f testPauseResume
Merge pull request #1074 from hmin/extension-refactor

[Android] Refactor Java extension system
[Android] Allow geolocation context permission for crosswalk.

Geolocation context permission has to be handled in crosswalk for Android
port. It's used to allow geolocation access for origins. This fix is to allow
requests from different origins for geolocation information with the
in-memory cache mechanism.
Currently we allow all origins to access the geolocation information
if the web app is granted with the permission.

BUG=https://crosswalk-project.org/jira/browse/XWALK-151
Merge pull request #1088 from wang16/content_scheme

[Android] Add content scheme support
Merge pull request #1103 from DonnaWuDongxia/embed

[Android] Add extension JS files to runtime client embedded shell
Merge pull request #1117 from wuhengzhi/pauseResume

[Android] Refine the test case about onPause and onResume.
[Android] Disable one test case about remote debug.

This patch disabled the test case "testDisableRemoteDebugging".
It is failed on trybot, but passed on buildbot. It can not be
reproduced on local machine.
It will be enabled later when we find the root cause.
Merge pull request #1113 from yongsheng/xwalk151

[Android] Allow geolocation context permission for crosswalk.
[Android] Add runtime core API copyBackForwardList

1 This class contains the back/forward list for a XWalkView.
XWalkView.copyBackForwardList() will return a copy of this class
used to inspect the entries in the list.
2 Add the API of XWalkView which is needed by the Cordova Container.
3 Implement BackForwardList and WebHistoryItem by wraping
org.chromium.content.browser.NavigationHistory class.

BUG=https://crosswalk-project.org/jira/browse/XWALK-330
[Android] Add runtime core APIs saveState/restoreState

1 XWalkView.saveState() saves the state of the XWalkView to a
Bundle; XWalkView.restoreState() restores the state of the
XWalkView from a given Bundle.
2 Add the two APIs of XWalkView which are needed by the Cordova
Container.

BUG=https://crosswalk-project.org/jira/browse/XWALK-330
[Android] Add saveState, restoreState test cases

Disable one test case as there is a blocking issue in
core test framework.

BUG=https://crosswalk-project.org/jira/browse/XWALK-330
Merge pull request #1126 from wuhengzhi/remotedebug

[Android] Disable one test case about remote debug.
Merge pull request #1091 from xingnan/backforwardlist

Add core APIs: copyBackForwardList, saveState, restoreState
Merge pull request #1094 from wang16/external_protocol

[Android] Handle android Action Uris