[Runtime] Move application runtime& event extension under xwalk::application namespace.

Present ApplicationEventExtension & ApplicationRuntimeExtension are
located inside namespace "xwalk". Actually they are parts of
"application module". This PR moves the two inside namespace
"xwalk::application".
Implement DOM screen.lockOrientation and screen.unlockOrientation

Can be tested manually with http://jsbin.com/IJapIVE/4
Merge pull request #1365 from shaochangbin/app-extension-namespace

[Runtime] Move application runtime& event extension under xwalk::application namespace.
Merge pull request #1367 from kenchris/lockOrientation

Implement DOM screen.lockOrientation and screen.unlockOrientation
[Runtime] Add install_time field in ApplicationData

The time of application installing should be stored in ApplicationData
as application meta data. It is a constant, so just have a getter method
for it.
Merge pull request #1359 from takethathe/installed_time

[Runtime] Add install_time field in ApplicationData
[Runtime] Polish application browser test

1. Add a new xwalk.app.test.notifyTimeout API to notify test timeout.

2. Make test API extension running on UI thread. And let the client to return
the xwalk.app.test.notifyPass/Fail/Timeout callback explicitly when it's ready.

3. Using Promise to provide a common asynchronous test driver. The JS can now
write code like below to test:
  function test1(resolve) { ... } // calls resolve() when test is done
  function test2(resolve) { ... } // calls resolve() when test is done
  var tests = [test1, test2];
  xwalk.app.test.runTests(tests, 5000); // if all tests can't finish in 5
  seconds then a TIMEOUT notification will be sent.
Merge pull request #1340 from seanlong/event_router

[Runtime] Polish application browser test
Bump version to 4.32.57.0
[SysApps] Add a stub for the Device Capabilities API

This patch adds the basic bits for starting the development of the
Device Capabilties API:

- The IDL files to generate the data serializers.
- The JavaScript shim file, initializing the internal extension system
- An Extension class and an Instance class.
- Register the extension on the XWalkBrowserMainParts (only desktop ATM).
[SysApps] Add an data provider abstraction for the CPU information

The data provider will access the underlying platform and fill a SystemCPU
struct. We are using Chromium classes to retrieve this information, which is
platform independent. In the following patch we will be adding a platform
specialization for querying the CPU load.

Note that the SystemCPU struct is not defined anywhere. By adding SystemCPU dictionary
interface to the IDL file, we instruct the generators to generate the header and
code for this struct, also a function to serialize the struct as a message we can send to
the JavaScript shim.
[SysApps] Add platform dependent CPU info providers

The buildsystem will handle the compilation units accordly to the suffix. No
compile time guards (#ifdefs) are necessary here.

The Windows implementation is just a no-op stub.
[SysApps] Add the Device Capabilities Object

Usually, we could be handling static methods at the Instance object, but this
API requires an EventTarget (coming soon) which adds a bit of complexity,
that's why we need an Device Capabilities Object.

DeviceCapabilitiesInstance has now a BindingObjectStore, which is a class for
keeping track of BindingObjects lifecycle and routing messages. It will
automatically destroy BindingObjects when they are no longer used and route
messages to objects based on the unique ID.

In the JavaScript side we have:

common.BindingObject.call(this, object_id) will initialize the BindingObject
and stablish the "link" for routing the messages.

DeviceCapabilities  is being exported at the root of the API namespace and cannot
be created with "new". We have only on instance of this object per app.
[SysApps] Hook the CPUInfoProvider into SysAppsManager

SysAppsManager will also centralize the creation of data providers. We might
create a new class just for that in the future if there is enough demand.
[SysApps] Implement the Device Capabilities getCPUInfo()

We first add an callback and function to the IDL to make it generate the Promise
reply serializers, which contains the SystemCPU + error message if applicable.

A function handler for "getCPUInfo" is also needed and it will associate the
message coming from the extension with a class method. It is being registered in
the Instance constructor.

GetCPUInfo::Results::Create is generated from the IDL. This function will
create a message which the promise wrapper will receive.

info->PostResult() has internally the callback ID that maps to a callback ID in
the JavaScript shim, so the message will reach the correct recipient.

In the JavaScript shim, is important to use "this_.addMethodWithPromise" so it will
wrap the Binding Object routing ID automatically to the message and associate it
to the Promise.
[SysApps] Add CPUInfoProvider unit tests

The test basically pings each entry point of the API and check if
the returns values are within a sane range.
[SysApps] Add browsertests for DeviceCapabilities getCPUInfo()

Not a replacement for W3C conformance tests, just checking the basic API
functionality and sanity. The test is crafted with the addition of tests
for the rest of the DeviceCapabilities API in mind, that is why we have
a test list with just one test.
[SysApps] Add the Storage Info data provider abstraction

This data provider was implemented differently from the CPU Info data provider.
I'm expecting the platform implementation to be more complex, so this is just an
interface.

The platform implementation should inherit from StorageInfoProvider and
provide a implementation of the static method GetInstance(). This will allow
the StorageInfoProvider[Windows|Tizen|Linux|...] to have its own attributes
and methods.
[SysApps] Make StorageInfoProvider observable

Add the Observer interface so other objects can get notifications when
a new storage is attached and detached.

It is important to remember that StorageInfoProvider must be a singleton,
so different webapps will share the same provider. This way, we don't waste
resources monitoring the same environment twice.

The provider will get a notification to start monitoring when the first observer
is added and another notification to stop monitoring when the last is removed.
[SysApps] Compile Chromium's StorageMonitor as a module

The StorageMonitor is almost self-contained, despite adding itself
to the Chromium's Browser Process. We should work upstream to fix that.

Meanwhile we can compile it as module (and protect the Chromium specific bits
with a flag) so we can use it as backend for the Device Capabilities
getStorageInfo() for Linux, Mac and Windows.