[SysApps] Make SystemStorage dispatch events

This is probably this most tricky part. SystemStorage has already a native
counterpart, but the JavaScript shim is not really aware of that. This is how we
make this happen:

The first thing to be done is make the JavaScript SystemStorage an EventTarget
(which is also a BindingObject). The BindingObjects are JavaScripts objects with
a link with some native object and they use a unique ID for routing messages
between them.

In this case, the object was initially created in the native side, so we have to
comunicate this ID to the JavaScript shim. For that, I new wrapper around the
promise had to be created.

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.

Finally, on the JavaScript side, SystemStorage is now an object that with a few things on
the constructor.

- common.BindingObject.call(this, object_id) will initialize the BindingObject
and stablish the "link" for routing the messages.
- common.EventTarget.call(this) initializes the EventTarget and makes
this._addEvent() possible.
- this._registerLifecycleTracker() will make use of one V8 extensions we have that
implements a sort of destructor. When the SystemStorage is collected by the GC, it
will send a message to the native side, which will be handled by the
BindingObjectStore that will destroy the native part of the SystemStorage,
freeing resources.

Now all the blanks are filled and we are good to go. The next step would be
replace the StorageInfoProviderMock with a real implementation for each platform
we support. No need to touch on anything else.
[SysApps] Implement the Device Capabilities getMemoryInfo()

This is probably the easiest to implement and the most portable API. It could be
implemented without a "provider", but let's just keep using the pattern to make
the implementation more coherent.

We are using the Chromium abstractions, so it should work on all platform
supported by Chromium with no need of provider abstractions.
[SysApps] Add a simple test for Device Capabilities

Not to self: make a browsertest out of this. :)