[Tizen] Load audio-session-manager dynamically in the Browser process

audio-session-manager is using an _attribute_((constructor)) to
initialize code and setup signal handlers at startup. So, linking
with this library is causing a sandbox violation by executing the
code in Renderer Process, since the Renderer Process and the
Browser Process are linked with the same libraries.

To prevent this issue, we load the audio-session-manager library
dynamically in the Browser process.

BUG=https://crosswalk-project.org/jira/browse/XWALK-517
[Tools] Convert lint.py to Unix line endings

Python on Windows should be able to recognize Unix line ending, but it
makes a difference for Unix-based, because we set it as a script and the
DOS line ending messes up the interpretation of "#!/usr/bin/env python"
line.

This means that we should be able to call on Unix-based systems:

  $ tools/lint.py

instead of having to call python with the script as argument.
Roll chromium-crosswalk to 1acc1e5.

eb4fb56 [SysApps] Expose ffmpeg function signatures needed by Device Capabilities API
Bump version to 3.32.45.0
[Android] Fix the test case about testExtensionBroadcast.

verifyResult() will be called from sub and top frame. When it was
called from sub frame, the value of messageReceivedInTop was null,
then set the title to "Fail". In java code, the value of title was
"Fail", so this test case failed.

The fix is to ensure both of the frames have received the broadcast
message, then set the title to "Pass".

BUG=https://crosswalk-project.org/jira/browse/XWALK-530
Merge pull request #1199 from wuhengzhi/extension_broadcast_fail

[Android] Fix the test case about testExtensionBroadcast.
Merge pull request #1212 from tmpsantos/deps_roll

Roll chromium-crosswalk to 1acc1e5.
RuntimeContext must be destructed explicitly

When MessageLoop is stopped, runtime_context_ must be set to null.
It will call RuntimeContext destruction method, which happened on
MainThread. It blocked download_browsertest.

BUG=https://crosswalk-project.org/jira/browse/XWALK-408
Merge pull request #1205 from nagineni/load_asm_dynamically

[Tizen] Load audio-session-manager library dynamically in the Browser process
Merge pull request #1210 from cmarcelo/lint-py-line-ending

[Tools] Convert lint.py to Unix line endings
Merge pull request #1219 from yinli/runtime_context_destruction

RuntimeContext must be destructed explicitly
Bump version to 3.32.46.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. The POSIX should work on Tizen, Linux
Desktop, Android and Mac.
[SysApps] Add a wrapper to make Promise work with Internal Extensions callbacks

Promises are a really nice fit with the Internal Extensions callbacks, because
they are single shot (you fire it once and forget about it).

We just need to create a wrapper around it with a "protocol" so we can
properly call fulfill() or reject() depending on the message we get from
the native backend.

The Internal Extension callback system will handle keep tracking of the mapping
between callback handlers in the native side and pending Promises in the
JavaScript shim automatically.
[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
automatically.

In the JavaScript shim, is important to use "internal.postMessage" so it will
use the Internal Extension callback system. The "[]" stands for the getCPUInfo
arguments, which is empty in this case.
[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] Added a mock StorageInfoProvider

This is just a mock info provider emulating how a provider will behave in a real
life. When monitoring for file system events, it will add and remove a storage
every 1s. It will also report at least 3 non-removable storages when asked.

We could reuse this later for unit tests.