View Model Extension

@jordanhamill

This is an initial PR for a Yap view model extension. It currently has the barebones that we need to populate a view model on post commit, based on a YapDatabaseViewModelHandler block that we pass in from Mineshaft.

View models are stored under `viewModel_` tables, with their schema denoted by an `MSHViewModelMapping` subclass which will be shown in another PR.

Indexing every single column in the view model will make all inserts that trigger a view model insert or update into very computationally expensive operations.

It would be good to have an interface to select which columns will be indexed.