Custom IterationView classes

Special cases `data-view` on the same node as a `data-foreach` so that it will use the class you pass to `data-view` instead of `Batman.IterationView`. This is big. It lets you define custom accessors and, more importantly, `viewWillAppear` callbacks for your iteration nodes. This also alleviates the need to define a custom backing view for the iterator in order to know when a child node/view/binding is added. Hooray!

@pushrax @SoapyIllusions @kristianpd for review.

@BlakeMesdag this should also fix your problem.