Allow addons to specify load ordering.

* Bring topsort algorithm from Ember (used for initializer ordering).
* Allow addons to use `ember-addon` key which resolves to an object with `main`, `before`, and `after` keys.
* Allow `ember-addon: { main: 'foo.js'}` as alternative to `ember-addon-main` in the `package.json` of the addon.
* Change `availableAddons` to return an object with the `package.json` contents of each addon (was previously being looked up twice).

Fixes #1125.