Basic main implementation.

This provides enough functionality to load a (specially-patched) AngularJS
version, register additional modules on it, and to create an injector
for one or more registered modules.

This is enough to use some basic AngularJS functionality like scopes and
the expression parser, but the caller must provide overridden versions
of some important ng modules like $browser before some of the trickier
parts will work.