[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] Tests for the Promise wrapper in the Binding Object

Test if the wrapper works for Promises that are rejected and fulfilled.
Merge pull request #1297 from tmpsantos/promise_wrapper

[SysApps] Integrate Promise with BindingObject