[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] 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
[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.
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]
[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
[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
[Android] Support permissions for Java external extensions

Following changes are made:
1. merged external extensions permissions to Android manifest file
2. added a unit test about this feature
3. fixed empty extension_name issue caused by redundant separators

BUG=https://crosswalk-project.org/jira/browse/XWALK-160
[Android] Add the test case about getVersion.

This patch contains the test about getVersion in shared and
embedded mode. It's for the runtime client.
Get the version, confirm it's validity by regular expression.