Merge pull request #815 from tmpsantos/io_loop2

[Extensions] Use a IO message loop for extensions running in a thread
[Extensions] Decouple the FunctionHandler from the Internal Extension Context

A preparation for the BindingObjects, which are going to be native
objects instances backing JavaScript objects.
composition
[Extensions] Convert the parameters of the function handlers into a struct

The previous syntax was too verbose and now with the struct, adding
a new parameter won't cause a mass rename.
remove_internal_ext
remove
dialog
remove
[Extensions] Add support for persistent callback listener

This is going to be the base of the EventTarget implementation. It is
important to remove the listener at some point otherwise the object will
leak.
[Extensions] Move xwalk_js2c.gypi to the XWalk root dir

This is now going to be used also by the upcaming SysApps.
[SysApps] Add the convenience classes and prototypes

These C++ classes and JavaScript prototypes are helpers for the common
places that appear all around the SysApps APIs specifications.

The main features are:

- Helpers for creating objects managed by the extension.
- Easy way of declaring API methods.
- EventTarget implementation, and thus, helpers for dealing with
  events.

For more information, check the documentation on the code.
delta
[Sysapps] Add unit tests for the convinience classes
delta
[Sysapps] Add browser tests for the common JavaScript API

These tests are testing the functionality of the helper JavaScript
prototypes and objects, like the EventTarget.
[SysApps] Add Raw Sockets stub

Just the skeleton to serve as base for the interfaces implementation. No API is
currently exposed.
[SysApps] Add TCPSocket implementation

This is the initial implementation of the W3C's Raw Sockets TCPSocket interface.
It is not complete but is fully functional. Some issues with the spec are being
worked with the standardization body, like the fact that the send() method is
technically sync (although we implement as async always returning true).

A notable missing feature is the throwing of exceptions on invalid parameters,
but the error callback is still called under these circumstances.
[SysApps] Add the RawSocketObject

This class is going to concentrate all the shared code among
the different interfaces of the Raw Socket API. Currently only
the ReadyState is shared.
[SysApps] Make it possible to create a TCPSocket from a connected socket

The TCPServerSocket will need to create a TCPSocket from incoming connections.
This patch makes it possible to create an object in the native side first and
handle the identifier to the JavaScript context.
[SysApps] Add TCPServerSocket implementation

Added an incomplete but functional implementation of the
Raw Sockets TCPServerSocket interface.