Add sub-containers
Remove pointless check for native Array replace.

The real function is called splice, which is what the “shim” was calling anyway.
ArrayController learned itemControllerClass.

```
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.