[Android] Add back key support

1 The patch is to add the back key support for the runtime. The
expected behavior when putting on the back button is to go back
to the previous page, but now it results to exit the app.
2 Override onKeyUp() of XWalkRuntimeView to handle this.
[Runtime] Fix application event router observer detach iteration bug
[Tizen][SysApps] Add AVCodecs support in device capabilities

The main idea is as below:
1. Get supported codec and mime format list from libffmpegsumo.so
2. Use APIs in net/base/mime_util.h to verify whether a format/codec supported.
   If true, the codec will be added in the supported media codecs list.

The step 2 logic refers to implementation of
WebKit::WebMimeRegistry::supportsMediaMIMEType()

spec: http://device-capabilities.sysapps.org/
feature: https://crosswalk-project.org/jira/browse/XWALK-47
[Extensions] Remove --disable-loading-extensions-on-demand switch

The feature was added for Crosswalk 2. We kept the switch to easily
remove it in Crosswalk 2 in case of regressions, with the plan to remove
it from the next release.

Since the feature has been stable and no regressions related to it were
found in the Crosswalk 2 beta branch so far, we are removing the
switch now.
[Application][Linux] Expose interface for launch apps via D-Bus

The exported object '/running/' supports only one method in its
interface, that is used to Launch applications. The ObjectManager based
interface will come in future patches, once the notion of "running
application" is added to Crosswalk (Mikhail / Alex work).

At the moment, Crosswalk quits after the application window is closed,
even running as a service. This behavior will change in future
patches.
[Runtime] Add calls to ApplicationEventManager

ApplicationProcessManager will calls OnMainDocumentCreated when main document is
created. ApplicationService will calls OnAppLoaded when Application object is
instantiated.
[Runtime] Add application event extension support

Currently application event extension API follows Chrome.events definition
(https://developer.chrome.com/apps/events.html).

Implementation details:
The event extension is implemented as an internal extension running on UI
thread. Its instance implements application::EventObserver interface to observe
registered events.

When a listener of an event is added for the first time, the extension instance
will save the wrapped dispatchEvent callback. Then when such event is notified,
the extension instance will call the wrapped callback to run all added
listeners. When all listeners are removed from an event, the extension instance
will detach itself from the event through event manager, the corresponding saved
callback will also be removed.

To provide a method to get the event dispatching status a new event
("onJavaScriptEventAck") is introduced. Other observers can attach to it and get
notification when "xxx" event has finished its dispatching in JS as "xxx" in the
arguments.
[Runtime] Add application event API browser test
[Android] Enable test case for presentation API in embedded mode
Extension in embedded mode is now avaialble, reopen the test case for
presentation API
Merge pull request #1114 from xingnan/backkey

[Android] Add back key support
Merge pull request #1223 from kurli/presentation_embeded_test

[Android] Enable test case for presentation API in embedded mode
Merge pull request #963 from seanlong/event_dev

[Runtime] Add application event API support
[SysApps] Move RawSockets to the experimental namespace

It was agreed in some technical meeting that SysApps should be in the
experimental namespace for now.
Merge pull request #1224 from tmpsantos/raw_sockets_experimental

[SysApps] Move RawSockets to the experimental namespace
Merge pull request #1209 from cmarcelo/remove-disable-loading-extensions-on-demand-switch

[Extensions] Remove --disable-loading-extensions-on-demand switch
[Extensions] Reenable test now that load on demand works
[Extensions] Make instance destruction test stricter

In the test, we wanted to ensure that instances (at the time "Contexts")
were destroyed correctly. But we were creating more instances than we
were using, so the checks were less strict.

Now that we only create an instance if the extension is actually used,
we can make the ASSERTs stricter.
[SysApps][Tizen] Rewrite DeviceCapabilities by using api offered by chromium.

Old implementation uses either linux api or Tizen api, while chromium has offer some
handy APIs we can reuse. They are cross-platform and well tested, no reason not use that.
Changes includes:
1. "base/sys_info.h" for CPU and Memory
2. "ui/gfx/screen.h" and "ui/gfx/display.h" for Display

Storage are not implemented in this way yet.
Merge pull request #1177 from YuZhiqiangX/master

[SysApps][Tizen] Rewrite DeviceCapabilities by using api offered by chromium.
Merge pull request #1208 from cmarcelo/updating-tests-after-load-on-demand-landed

[Extensions] Updating tests after load on demand landed