Make all initialization asynchronous

This replaces a bunch of synchronous XHR calls, which are bad practice and are only there because I was lazy and trying to get things up and running.

Rather than using something more heavyweight like Promises, I opted for Mike Bostock's lightweight Queue library: https://github.com/mbostock/queue.

It works but is not yet ready to merge, still need to address some ugly flickering when recompiling/rebuilding (try the effect switcher in the demo to see).

@iwillig  - you'll probably be interested in this. It still feels messy, open to other approaches.

Not that it matters, but a convertion often see in async code is the on complete callback is called done, 

https://github.com/visionmedia/mocha/blob/master/test/hook.async.js#L119