Application registers implicitly resolved controllers.

Also, such controllers can be registered as non-singletons.
ArrayController learned itemControllerClass.

```javascript
var ControllerClass = Em.Controller.extend();
var controller = Em.ArrayController.create({ content: Em.A([0, 1]) });

controller.objectAtContent(0);               // an instance of ControllerClass
controller.objectAtContent(0).get('content') // 0
```

This partially addresses #1637, but makes no attempt at supporting reusable
views.