[Extensions] Add XWalkExtensionFunctionHandler unit tests
Merge pull request #816 from tmpsantos/function_handler_utests

[Extensions] Add XWalkExtensionFunctionHandler unit tests
Bump version to 2.31.14.0

This is based on Chromium 31.0.1650.12.
Build fixes based on patches by Caio Marcelo.
Merge pull request #819 from jeez/xwalk-2

Bump version to 2.31.14.0
Fix the Mac build.

A file moved upstream and various fatal clang warnings.
Merge pull request #820 from darktears/mac-fixes

Fix the Mac build.
Updating Chromium-crosswalk ToT hash in DEPS.xwalk
[Tizen] Runtime side change to install/uninstall package information on Tizen.
[Tizen] Implement install/uninstall package information on Tizen.

We aleady have the Python implementation to install/uninstall package
information on Tizen.
https://github.com/crosswalk-project/crosswalk/pull/493;
https://github.com/crosswalk-project/crosswalk/pull/665.

This CL is the C++ implementation to replace above pull requests.
For installation,
1. Generate Tizen pkginfo compatible XML file from Crosswalk manifest.json.
2. Copy or link resources for home screen launch. Resources are located at,
   icon: /opt/share/icons/default/small/|package_id|.png
   execute path:/opt/usr/apps/applications/|package_id_|/bin/|package_id_|
3. Install package information into Tizen database.

For uninstallation,
1. Uninstall pkginfo from Tizen database.
2. Remove application icons, execute path and XML file from Tizen system.

Instead of using 'pkginfo' command to install/uninstall package
information on Tizen database, this CL directly calls Tizen C APIs from
pkgmgr-parser.h. The GYP configuration to include Tizen libraries is
borrowed from
https://github.com/crosswalk-project/crosswalk/pull/570 (build/system.gyp)
Merge pull request #755 from shaochangbin/cb-pkginfo

[Tizen] Implement install/uninstall package information.
[Tizen] Introduce AppcoreContext to make Tizen task switcher be able to control
Crosswalk's web applications.

Crosswalk's web application must communicate with Tizen application framework.

The most important task we need to do is to call appcore_init() in Tizen.
appcore_init() connects Tizen task manager via IPC. After calling
appcore_init(), the given process that called appcore_init() can communicate with
Tizen task switcher.

AppcoreContext calls appcore_init() with a callback function, and handles
messages in the callback function. Currently, AppcoreContext handles only
AE_TERMINATE message. When AppcoreContext receives AE_TERMINATE message,
AppcoreContext quits the Crosswalk. The task switcher sends AE_TERMINATE message
when an user kills the app on the task switcher.

AppcoreContextImpl uses private Tizen appcore API to reuse Tizen 2.0 implementation.
This private implementation of appcore is a bit huge. We will decide later
whether to maintain the code similar to appcore private implementation in Crosswalk
or not after investigating appcore in Tizen 3.0.

To concentrate Tizen implementation detail on cc file, we declare
AppcoreContextImpl that extends AppcoreContext in cc file.

NOTE: this implementation is not compatible with shared process mode, because
Tizen task switcher cannot recognize multiple tasks per process. Shared process
mode requires one Crosswalk process to include multiple tasks (= web applications).
It is not supported by current task switcher.

appcore_context.cc is similar to a part of appcore-efl.c in appcore.

BUG=https://github.com/otcshare/crosswalk/issues/609