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`
* Change `availableAddons` to return an object with the `package.json`
  contents of each addon (was previously being looked up twice).
Merge pull request #1132 from rjackson/allow-addons-to-specify-ordering

Allow addons to specify load ordering.