Enable properly nested addons

See #2354 for context.

This adds a `parentAddon` context for any nested addons included in a project. The `parentAddon` is supplied to each child addon on the addon instance as well as passed into the `included` hook.

The child addon is then free to determine if it should modify the `parentAddon` or the `app` from within the `included` hook.

This enables addons to have their own isolated dependencies which don't interfere with the root app's preprocessors. I.e. I can write my addon in Coffeescript, and the parent app doesn't need to depend on the Coffeescript addon directly.
I'd rather not change the signature of the `included` method for something that is available internally in the addon already (we might need to add something later that cannot be provided via instance property and then we'd have to add even more params).  We can document this via your other PR (showing how to access the `this.parentAddon`).