parse_xpk: Define HandleError() and its constants before using them.

The existing code to warn the user if the Python crypto modules were not
installed was simply not working, as HandleError() and
EXIT_CODE_CRYPTO_NOT_FOUND need to be defined before the former is called.
[Extensions] Add a test that another extension depends on another

In this test an extension ("another") depends on two other extensions ("outer"
and "outer.inner"), by using objects that are provided by those extensions.
[Mac] Don't use Aura for Mac

Aura is not ready for Mac currently. It has not been enabled for Mac in upstream.
Thus, it fails even during 'gclient sync' due to some duplicate keys in resource files.

More details:

https://crosswalk-project.org/jira/browse/XWALK-85
Merge pull request #1018 from poussa/mac-gclient-sync

[Mac] Don't use Aura for Mac
Merge pull request #994 from rakuco/py-use-before-definition

parse_xpk: Define HandleError() and its constants before using them.
[Android] Fix ExtensionBroadcast test

With load on demand enabled (the default now) instances are only created when
needed. This test is failing because it assumes that a new Extension instance
is created for the iframe, and as the code running in the iframe doesn't need
the any instances they are not created.

This fixes substitutes the assumption that the instance will be created, when
the context is created by explicitly calling the extension.

With this assumption fixed, the test can be enabled back.

BUG=#984
[Extensions] Pass to RP whether we use or not use extension process
Merge pull request #1024 from cmarcelo/let-rp-know-whether-ep-is-enabled

[Extensions] Pass to RP whether we use or not use extension process
[Extensions] Register external extensions when EP is disabled

Fix the bug of external extensions not working when
--disable-external-process flag was passed. This is the default behavior
for Android. The problem was that we were sending the extensions to RP
before adding the external ones.
Merge pull request #993 from vcgomes/nested-load-on-demand-test

[Extensions] Add a test that another extension depends on another
Merge pull request #1026 from cmarcelo/fix-disable-extension-process

[Extensions] Register external extensions when EP is disabled
Merge pull request #1013 from vcgomes/fix-android-test-with-load-on-demand

[Android] Fix ExtensionBroadcast test
[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] Make CreateJSModuleFromResource public

This function is going to be used by SysApps to register the
common JS API.
[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.
[SysApps] Make the common API availiable as a module

Make it available to be accessed via requireModule(). It is going
to be used by the SysApps APIs like Raw Socket.
[SysApps] Add unit tests for the convinience classes
[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 the 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.

We also add the RawSocketObject class. 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.