Only defer onLoad calls for descendant scopes.

We want registration to be synchronous to the extent possible,
so when scope.register(a) is followed by scope.register(b), b
can be certain that a.onLoad() has already executed.

However, Mortar guarantees that bundlers registered on a given scope
will be loaded before bundlers registered on that scope's descendants.
The previous implementation of this guarantee was too strict, and would
prevent synchronous registration within the current scope.  The new
implementation allows synchronous registration and loading in the local
scope or an ancestor, but still defers loading for registration on
descendant scopes.

We also now disallow registration from within onSave.  That was
nonsense.