Fix loading of preload bundles

Test in mop-integration#22e8d30accb05fa37fba46fd961238bec0a7b29d
Wait for preload to finish before issuing requests for modules

because the module might be included in one of the bundles. This was
already being done to load package descriptions, and so the same
feature has been added to the ScriptLoader
Fix main linkage for relative identifiers

Previously, a package with a "main" property that started with "./"
would be linked incorrectly.
Merge pull request #42 from Stuk/preload

Fix preloading
Squashed 'packages/q/' changes from 552cba2..b9e9df8

9926e81 0.9.7
5b49b2e Update change log
e0ec644 Merge pull request #367
f7a7505 Stop checking in q.min.js
188f4cd Fix intermittent nextTick bug in one Safari
33602d4 Move some resources to the top; add new links to others.
cbd0701 Show stack traces in unhandled rejections array
f5527cd Merge pull request #356 from kriskowal/all-settled
90e18f4 Do not modify input array of allSettled
893fe3c Upgrade jasmine-node and jshint.
77ad901 Move `call`-saving line out of `uncurryThis`.
97c9170 Use `{ index, value }` instead of `[index, value]` for `all`.
ca5297a Use less verbose Grunt syntax.
b035e10 Only one license.
424dbd1 Make `Q.all` emit [index, value] progress.
12c1bb9 Clarify that we'll explain how to create promises later.
c8ae9a3 Add test for allSettled with an empty array.
0810b1c Use :warning: emoji instead of `/!\`.
7ac15f3 Update all examples to modern Q usage and style.
c842f54 update old & new examples to use more of Q, and make new example more comprehensive
26a8cb4 Add async generators example to show composition with standard control flow
2566574 update Q.async to work with current ES6 generators without send()
92b9bca Correct reference to C# version for the 'await' keyword
ad71aba `Q.resolve` and `Q.when` to `Q`, where possible.
f5a310c Review new operators
e686c9d Shift feet from Q to Promise.prototype
d144e13 damn tabs
56304a6 Address Domenic's issue that forEach assumes at least ES5
60ba361 Add Q features assumed by smart-contract code
2eb6613 Clarify opening example. Fixes #332.
6eedcd9 Beginnings of a performance testing suite.
681f6d2 Make delay work only on success, remove throttle
a8cba26 Grunted
f0c4871 Rename delay to throttle, add delay
714a1f0 Merge pull request #321 from CGamesPlay/master
51bfa9c Update README - Adapting node
7c13851 Fix lint errors.
5dacd9b 0.9.6
REVERT: 32f5e9b 0.9.6

git-subtree-dir: packages/q
git-subtree-split: b9e9df8d83e29e6f1de2ee3834f193b8970fbac1
Update Q to v0.9.7

Conflicts:
	packages/q/.jshintrc
	packages/q/CHANGES.md
	packages/q/Gruntfile.js
	packages/q/README.md
	packages/q/examples/all.js
	packages/q/examples/async-generators/0.html
	packages/q/examples/async-generators/3-spawn.js
	packages/q/examples/async-generators/README.md
Merge pull request #51 from Stuk/q0.9.7

Q 0.9.7
Enable Travis integration testing of released Mop versions
Update changelog for v0.13.4
0.13.4
Merge pull request #52 from Stuk/v0.13.4

v0.13.4
Merge branch 'fix-main-linkage' of github.com:kriskowal/mr into master
Add tests for main property of package.json and fix for Node
Remove rogue debugger statement
First attempt at sandbox module
Add documentation
Add more tests for sandbox

100% coverage
Merge pull request #22 from Stuk/sandbox

Sandbox
Merge pull request #26

Removes support for package reflexive module names, since they
potentially collide with actual modules that are not the main module but
happen to have the same name as the package.
Build boot.js script using a build script

:warning: This includes backward incompatible changes that impact Montage and Mop.  Changes to those packages in the corresponding `build` branch must be coordinated and released in a future, backward-incompatible release.  Some care will be needed to ensure that `mop` in particular depends on compatible versions of `mr` and `montage`.

This introduces a program, `mrs`, that can create stand-alone scripts from modules that only need the ability to produce and consume CommonJS modules with `require` and `exports` or `module.exports`, and depend only on a static working set.  The resulting script has very little overhead and is based on the build products of Browserify.

`mrs` is sufficient to build `mr/boot.js` (previously `bootstrap.js`)from the CommonJS modules in the `boot` directory.  Run `npm run build`to produce a new revision of `boot.js` and `boot/preload-boilerplate.js`.

This aleviates the need to perform script injection in the bootstrapping process, at the expense of introducing a build step for the bootstrapper.  This change also allows a greater level of code reuse between Mr and Montage in their bootstrapping processes.  This also obviates the need to embed UMD boilerplate in these modules, since they will always be used as CommonJS modules, either as sources for the build or as instruments of Node.js.

Since `mrs` embeds the entirety of `boot.js`'s dependencies, it is no longer necessary to use a subrepository for these dependencies and no longer necessary to use hard-coded relative locations for these dependencies in `package.json`.  These dependencies may now be installed by NPM and the maintainers of Mr and its dependencies no longer need to coordinate or hard-code their dependency trees.  This is important because Q will soon be breaking up into smaller modules and packages.

The `mini-url` module may now be a CommonJS module shared by Montage and Mr.  Within Montage and Mr, it may be required by the name `url`.  A mapping in `package.json` directs the module loader to use `mini-url.js` instead.  On the Node.js side, where `mini-url.js` would not work, we fall back to Node.js's `url` module, which has an API that is a strict super-set of `mini-url.js`'s.

Invert package nesting in browser boot: Previously, the root package was the module loader itself.  Now, to match what is likely in practice, the application loads first, then the module loader, then promises.