Add a patcher script to apply patches

1. Patcher is a helper to apply patches to certain repos.
2. It runs in hooks of DEPS after fetching deps successfully.
3. patch.cfg is used to config the patch path and target repo path.
4. These python scripts origin from CEF project.
Merge pull request #1051 from xingnan/patcher

Add a patcher script to apply patches
[Android] Destroy the native resource of XWalkView

Each XWalkContnet object owned by XWalkView has its own native counterpart, we
need to cleanup the native resource when an XWalkContent object is requested to
be destroyed, e.g. an activity is destroyed.

This fix is to add 'destroy' method to XWalkContent for this purpose.

BUG=https://github.com/crosswalk-project/crosswalk/issues/998
[Android] Add loadAssetFileAndWaitForTitle and apply in XWalkCoreTest cases

Instrumentation tests may fail because the titles may be verified
before they are changed. This commit introduced a new interface named
"loadAssetFileAndWaitForTitle" to wait until the title be changed.

BUG=#984 (Partially)
[Android] Refactor the code for instrumentation tests.

Currently so many source codes are duplicated and hard to maintain.
Need to refactor them and share common code. This fix is to share
all common code in utils so that instrumentation tests for embedded
and shared modes can share as many code as possible.
This is the second step. The next one is to share the code for core
tests.

BUG=https://crosswalk-project.org/jira/browse/XWALK-95
[Android] Use loadAppFromManifest if a manifest.json is used for a web app.

Add loadAppFromManifest support for web app. If web app is packaged with
manifest, directly use loadAppFromManifest API to load app.
Because native manifest parser only supports original proposal
"app:launch:local_path", manifest related test cases are modified.
When the specfication for manifest is stable, will revisit these test
cases and native manifest parser.

BUG=https://crosswalk-project.org/jira/browse/XWALK-100?filter=10007
Merge pull request #1044 from junmin-zhu/manifest

[Android] Use loadAppFromManifest if a manifest.json is used for a web app
Merge pull request #1037 from DonnaWuDongxia/waitForTitle

[Android] Add loadAssetFileAndWaitForTitle and apply in XWalkCoreTest cases
Merge pull request #1050 from hmin/destroy-xwalkview

[Android] Destroy the native resource of XWalkContent
Merge pull request #1054 from yongsheng/refactorcodetest

[Android] Refactor the code for instrumentation tests.
[Android] Add the test case about onPause and onResume.

This patch contains the test case about onPause and onResume on
embedded and shared mode.
Invoke onPause or onResume on main thread, wait for some seconds
to ensure that we get the title. Then wait for two hundred
milliseconds, get the title again. Compare the two titles.

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