Allow injector creation and bootstrapping to be phased.

Previously the two options were to either create a bare injector with no
root element, or to use bootstrap to bind an injector to a root element.
This is awkward because it requires the caller to decide up front whether
a root element will be required.

This new interface allows a raw injector to subsequently be "upgraded"
into an element-bound injector. The $rootElement service will only be
injectable if the injector is bootstrapped before it is requested, which
ought to be quite soon after the injector is created to avoid confusion.