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.
[SysApps] Add the convenience classes and prototypes

These C++ classes and JavaScript prototypes are helpers for the common
places that appear all around the SysApps APIs specifications.

The main features are:

- Helpers for creating objects managed by the extension.
- Easy way of declaring API methods.
- EventTarget implementation, and thus, helpers for dealing with
  events.

For more information, check the documentation on the code.
[SysApps] Make the common API availiable as a module

Make it available to be accessed via requireModule(). It is going
to be used by the SysApps APIs like Raw Socket.
[SysApps] Add unit tests for the convinience classes
[SysApps] Add browser tests for the common JavaScript API

These tests are testing the functionality of the helper JavaScript
prototypes and objects, like the EventTarget.
[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.