[Extensions] Add SetExtraJSEntryPoints to Extension C API

This will allow for Extension to inform if they have other entry
points (apart from the implicit extension_name), that should cause
the extension to be loaded.

For example, let's start with an extension named 'xwalk.sample' that,
for whatever reason, needs to have a function in the 'xwalk' object,
let's say 'xwalk.SomeFunction'. The extension would need to use this
API to tell that it should also be loaded when 'xwalk.SomeFunction' is
accessed, if we want our load on demand functionality to work.

An additional internal API header is introduced to keep this new API
contained, until this idea is proven.
[Extensions] Verify that the entry points are valid names

Also make sure that there aren't any extension already registered
with clashing names (or entry points).

We re-use the function that used to validate extension names to validate
entry points as well, so we rename it to something more appropriate.

All the symbols "exported" by an extension are kept on a std::set, so we
can re-use this Set when testing the extension name.
[Extensions] Add tests for conflicts between extensions

This adds for when an extension adds an entry point for an object
that belongs to another extension, either the extension name or
via entry points.
Merge pull request #940 from vcgomes/extra-entry-points

[Extensions] Add a way for extensions to have multiple entry points
[Extensions] Remove GetJavaScriptAPI() virtual function

XWalkExtension expected subclasses to override a virtual function
GetJavaScriptAPI() that would return a "const char*" null terminated
string.

This patch removes that function and adds a set_javascript_api() for
subclasses to call during construction time. XWalkExtension stores the
javascript_api code in a similar way than it does for the name.

In practice, this matches what the external extension adapter was doing
anyway, and remove a few lines of boilterplate from every test case. It
will also be helpful when we start to use ResourceBundle for JS files
inside Crosswalk.
[Extensions] Remove old comment From XWalkExtensionProcessHost.
[Extensions] Use OnRenderProcessHostCreated to create a ExtensionProcessHost

This patch postpones the creation of a XWalkExtensionProcessHost until
a new RenderProcessHost is created. For achieving that we also had to
delay calling XWalkExtensionProcessHost::RegisterExternalExtensions.
[Extensions] Create Extensions' Infra per RenderProcess

For fully achieving it, this patch adds:
- One ExtensionProcess per RenderProcess;
- An InProcess ExtensionServer per RenderProcess;
- An InProcess MessageFilter per RenderProcess.

The patch also refactors XWalkExtensionService::OnRenderProcessHostCreated,
creating two helper functions to:
CreateExtensionProcessHost() and CreateInProcessExtensionServer().
[Extensions] Move ExtensionProcessHost, in_process server and message filter to a single struct

This patch adds a struct ExtensionData to XWalkExtensionService that will
be responsible for holding the data related to extensions per RenderProcess.

This has reduced our need of 3 maps to only one map.
[Extensions] Add test for 1-EP-per-RP
Merge pull request #959 from cmarcelo/extension-use-string

[Extensions] Remove GetJavaScriptAPI() virtual function
[Extensions] Make XW_Extension_EntryPoints.h consistent with other public headers
Merge pull request #968 from cmarcelo/public-header-consistent

[Extensions] Make XW_Extension_EntryPoints.h consistent with other publi...
Move resource_ids file outside runtime

The resource_ids file is an index for all the "grd" files that describe
resources (strings, images, data) we bundle with Crosswalk.

We want to provide resources for other parts of Crosswalk, so move this
index outside runtime/.
[Dialog] Use resource bundle instead of xwalk_js2c target

This patch changes our xwalk.experimental.dialog to use ResourceBundle
instead of our previous solution of generating a C source file to be
included.
[Extensions] Use ResourceBundle for storing JS instead of xwalk_js2c
[Runtime] Use ResourceBundle instead of xwalk_js2c.gypi
[Application] Use ResourceBundle instead of xwalk_js2c.gypi
[Extensions] Remove xwalk_js2c.gypi

This GYP file and the corresponding script are not used anymore. We now
bundle the JavaScript code using the resources system.
Merge pull request #960 from cmarcelo/resource-bundle

Use resources to bundle our JS files, drop xwalk_js2c solution