Incorporate addons into EmberApp.

Incorporate the `Project` models, recent addon support into `EmberApp`.

Uses the following hooks/functions that are called on each addon (if the method exists):

* `included` -- Called at the end of the `EmberApp` constructor.
* `treesFor` -- Called at various points in the building up of the final dist tree. Receives the name of the step that is being processed. The return value is expected to be a Broccoli tree.  The following steps are available with this PR:
 * `app`
 * `styles`
 * `vendor`

----

For a sample addon please take a look at: [ember-cli-pretender](https://github.com/rjackson/ember-cli-pretender/blob/master/index.js)

`ember-cli-pretender` can be used (with these changes) via the following steps:

```bash
npm install -g ember-cli
ember new some-awesome-app
cd some-awesome-app
npm install --save-dev ember-cli-pretender
ember server
```

No modifications are needed to the `Brocfile.js` at all.
Just updated so that a helpful error is thrown if `included` or `treeFor` are not implemented.