Object

`Object` is almost an entire port of `Controller`. Ideally, we should be able to add enhancements to both once Object lands. I think @thejameskyle has some ideas for things we can add for Object. As for Controller, it will get some goodness over the course of 2.x.