Adds some notes on the (ab)use of mvvm I plan
Adds the start of a view model layer, which begins the process of moving from IB cocoa bindings to programmatic bindings. Now there's a programmatic array controller bound to the moc, with, in turn, the item list table view bound to it.
Binds the image view to the view model's programmatic array controller, and removes the now-unused IB array controller from the .xib.
For clarity, renames itemArrayController to itemEntityController.
Exposes a less specific value transformer past the view model. Now instead of having view controllers bind to contentID with a contentID->image transformer, they just bind to the item and an item -> image transformer.
Moves most of the omnibar view controller logic into the view model where it belongs. The VC now just forwards the text.
Bugfix: NSURL returns valid a string like "test", gotta test if it has a host component to separate out tags from downloadable URLs. Plus, by having a separate function, it'll be easier to expand out into further validation tests.
Moves the dance of downloading-then-storing-in-coredata for new items from the view model back to the model, exposing a single method in the services to do both.
Adds some notes on a theory for how I could bind array controllers to each other (not working, nor worth the effort right now), and creates an architecture diagram.
Merge branch 'feature/mvvm' into develop