[Android] Fix crash issue in Android extension system

On Android, the extension objects and instances are deleted explicitly
by JNI invokation from Java side. However, both extension objects and
instances are designed to be owned by XWalkExtensionServer, it means
that only XWalkExtensionServer is allowed to delete them, otherwise a
pointer would be deleted twice and cause crash issue.

This fix is to address the above issue and make sure the extension
objects and instances are owned by XWalkExtensionServer. Moreover, the
extension objects on native side will be alive in the whole process
lifecycle and reused by Java-side if resuming back.

BUG=https://crosswalk-project.org/jira/browse/XWALK-821
[Extensions] Add a setter callback accessor to trampolines

Prior to this patch we weren't supporting trampolines with setter
callbacks. This patch enables extensions so can implement an API
to be used like:

"window.onFooChanged = function() { foo("teste"); };"

and use window.onFooChanged as an entry point to an extension called
xwalk.sample, for instance.

BUG=https://crosswalk-project.org/jira/browse/XWALK-835
TEST=./out/Release/xwalk_extensions_browsertest --gtest_filter="MultipleEntryPointsExtension.*"
Merge pull request #1479 from jeez/lazy-load-setter-callback

[Extensions] Add a setter callback accessor to trampolines
[Extensions] Fix entry points for Screen Orientation Extension

After commit 856353beba8a8318c51da3d672af187d7fd58ada, entitled
"[Extensions] Add a setter callback accessor to trampolines",
we can now use screen.onorientationchange as a valid entry point.
Merge pull request #1481 from jeez/fix-screen-orientation

[Extensions] Fix entry points for Screen Orientation Extension
Fix orientation sometimes getting stuck in current orientation after unlock

While we are locked the display_.rotation() can get out of sync with the
actual device orientation, so we need to find the best orientation given
the actual orientation, not the old one.
Merge pull request #1486 from kenchris/stuck

Fix orientation sometimes getting stuck in current orientation after unlock
Make sure screen.orientation is always valid

If the orientation has not been set by the extension yet, query it
synchronously.
Merge pull request #1488 from kenchris/sync

Make sure screen.orientation is always valid
Bump version to 4.32.71.0
[Android] Load manifest.json if it exists but not specified in options.

Because the manifest has been supported by packaging tool, and it's the
recommended source for packaging. So manifest.json will be loaded
if it does exist.
[Runtime] Enable to update a web application from local

A web application can be updated from local when using "--install" switch
in command line, like this:
$ xwalk --install /path/to/xpk_package.xpk
If the application has been installed, WRT will try to update it.

https://crosswalk-project.org/jira/browse/XWALK-463
[Runtime] Re-factor for Install & Update methods in ApplicationService class
Merge pull request #1471 from junmin-zhu/icon

[Android] Load manifest.json if it exists but not specified in options.
[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] Add 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.
[SysApps] Implement the Device Capabilities getStorageInfo()

This patch implements the bits for retrieving the storage information. This is
not very diffirent for the getCPUInfo other than it is using a different
provider.
[SysApps] Add an method for checking if an Event is active

This is probably more straightforward than keeping booleans around
to check if there are listeners for a certain event.
[SysApps] Make DeviceCapabilitiesObject an EventTarget

This patch adds the native bits of the EventTarget. This will allow
DeviceCapabilitiesObject to get notifications when there is someone listening
for events, so we can start monitoring the filesystem by adding an observer.

It is important to notice that it will only add itself as an observer to the
StorageProviderInfo when there is actually some listener in the JavaScript side,
this way we don't do any monitoring if nobody is listening.

The EventTarget class triggers the StartEvent() method when the first listener
is added and the StopEvent() when the last listener is removed for a particular
event.