Major refactor of load mechanism

This is a workaround for some madness in IE that became apparent as the
test suite expanded.

Dynamic script tags added during content loading are very
non-deterministic.

- They don't necessarily execute in order (regardless of async/defer)

- document.get... methods are non-deterministic during page fetch

  * This is glorious, the caching mechanism means that in IE, you can
    actually getElementsByTagName('script'), add a 'debugger;' statement
    at the same point and visually confirm that the script tag list is
    wrong - sometimes it has additions, sometimes it has omissions...

    You can also manually trawl the DOM and construct an
    accurate list, as additional confirmation, but that doesn't help
    with the out of order execution.

The workaround I've used is to only begin dynamic loading after the
initial DOM has loaded - which appears to make IE become deterministic
again.

On the plus side, these recent order changes, and the simplified
Loader.clone() mechanism have allowed a lot of hacks, and unused
loader/script combination ids to be discarded!