[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] 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.
[Android] Handle external protocol correctly

The external protocol is not handled well.
1. There is a new interface at content resource loader
   delegate, which is "HandleExternalProtocol", it must
   return false for the protocol we want to handle
   differently.
2. The method "shouldOverrideUrlLoading" in XWalkContentClient
   is not hooked into navigation interceptor, so the override
   in derived client is not invoked at all.

BUG=https://crosswalk-project.org/jira/browse/XWALK-150
[Android] Copy JS API binding files to xwalk_core_library project

So that the cordova-container could use the built-in extension API, e.g.
widi api and device capabilities api.
Merge pull request #1067 from tmpsantos/raw_socket_common

[SysApps] Introduce SysApps foundations
Introduce OS_TIZEN and set specific settings for Tizen platforms

Introduce it to the build system.
Merge pull request #1093 from kenchris/settings

Introduce OS_TIZEN and set specific settings for Tizen platforms
[Extensions] Make RegisterExternalExtensionsInDirectory return a list of extensions name

Having XWalkExtensionServer::RegisterExternalExtensionsInDirectory returning
a vector of the loaded extensions name has proven to be useful for the XWalk
Extensions Shell. It is harmless for callers who doesn't need that information.
[Extensions] Add XESh: XWalk Extensions Shell

This commit adds a tool called XESh - a very simple Javascript
shell that loads external extensions for testing.

Usage: ./out/Release/xesh --external-extensions-path=$CODE/tizen-extensions-crosswalk/out/Default

After that you will get a prompt 'xesh>'. Just type any
javascript command or test your extensions.

What will be missing after this initial patch:
- centralize all shell 'handling' to a singleton and replace
fgets and fprintf calls to function calls of this class;

- make this shell handler use GNU readline so we get a better
shell for free :);

- Register the 'internal' native module;

- Make XESh rocks!
(a.k.a.: Any other shell cosmetics one feel like doing.)
[Extensions] Add a (simple) manual test for XESh

This manual test runs XESh passing an input file that
uses the echo extension. If the extension gets loaded then
it means the javascript command got executed and XESh has loaded
the echo extension properly.
Merge pull request #1060 from jeez/xesh

[Extensions] Add XESh: XWalk Extensions Shell
Bump version to 3.31.33.0
Merge pull request #1072 from hmin/jsfiles-copy

[Android] Copy JS API binding files to xwalk_core_library project
Merge pull request #1076 from wang16/external_protocol

[Android] Handle external protocol correctly
[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