Addons autoload generic addon with no main defined

Addons will autoload folders in the treeFor hook with the same name if no
ember-addon + main file is specified. They can also export an object instead
of a function that will be extended off of the Addon constructor.

In AddonLookup I am using the try-catch to allow addon folders with no index.js
defined to still be found and used. This is different than how the blueprints
have it implemented [here](https://github.com/stefanpenner/ember-cli/blob/master/lib/models/blueprint.js#L411).
This same thing could likely be implemented in a separate PR to not require
blueprints have an empty index.js file.

A few (related?)quesions:
Should we have deprecation warnings on `ember-addon-main` and/or exporting
a function instead of an object from addons.

I'm for deprecating them both as it's just more to maintain later. I'd rather
have a single path for addons instead of allowing each one to do things different.
Can we make this use a `treePath` lookup?  Add something like this to the constructor:

```javascript
  this.treePaths = {
    'app': 'app',
    'styles': 'app/styles',
    'templates': 'app/templates',
    'vendor': 'vendor'
  }
```

Then here just do:

```javascript
var treePath = path.join(__dirname, this.treePath[name]); 
```

And then you do not need a conditional.  This would allow a consumer to simply export an object that has a `treePaths` property without having to override `treeFor` directly.

So to customize where the `styles` tree is held, you might use:

```javascript
module.exports = {
  treePaths: {
    'app': 'app-addon',
    'styles': 'styles-addon',
    'templates': 'templates-addon',
    'vendor': 'vendor-addon'
  }
}
```