[Extensions] Add tests for loading extension with multiple entry points

This test verifies that the extension is loaded even if the entry point
is in a different object than the one implicitly created by the extension
name.
[Extensions] Make entry points info available to the ModuleSystem

If we want to support loading extensions on demand, we have to make the
information for which entry points each extension will be accessible to
the entity responsible for loading extensions, in our case, the entity
is XWalkModuleSystem.
[Extensions] Add a way to tag extensions that will be loaded on demand

For now we will use a simple algorithm that will only load "leaf"
extensions on demand, for example, if "tizen", "tizen.time" and
"tizen.power" are in the extension list, we will enable loading on
demand for "tizen.time" and "tizen.power".
[Extensions] Load extensions on demand

Now that we have all the pieces it is time to put them together.

For each extension marked as 'should use the trampoline', we setup
"trap" acessors (for all entry points), that when run will load the
extension and create an instance for it. Before the extension is
loaded we need to remove all the references to the accessor function,
so it is not run anymore for those objects.
Merge pull request #967 from vcgomes/load-on-demand

[Extensions] Load extensions on demand