[BUGFIX BETA] BREAKING: Fixed how parentController property of an itemController when nested.

When an `itemController` is specified for an ArrayController that itself has a `parentController`
set, the framework was previously setting the itemController's `parentController` property to the
ArrayController's `parentController` instead of the ArrayController itself. This commit fixes that
behavior, and improves the docs, naming, and logic around this case.

If you were relying on an itemController's `parentController` skipping a generation, you will
need to use `parentController.parentController` or better yet, avoid the Law of Demeter
violation and provide a sensible method on the ArrayController that itself delegates to its
`parentController`.
Merge pull request #4179 from lukemelia/item-controller-bug

[BUGFIX BETA] Breaking: Fixed how parentController property of an itemController when nested
Add `item-controller` type.

This should be a completely backwards compatible change. The new format
allows for the item-controller to fall within the new pod structure
alongside the template/route/controller that it is used within.

For example:

```javascript
App.PostsRoute = Ember.Route.extend();
App.PostsController = Ember.Route.extend();
App.PostsItemController = Ember.Route.extend();
```

Could allow the following structure:

```
app/posts/route.js
app/posts/controller.js
app/posts/item-controller.js
app/posts/template.hbs
```