NITableViewSystem & NITableViewDelegate

NITableViewSystem provides a simplified way for creating/managing the combination of UITableViews, NICellFactory & NITableViewModel that is needed to use Nimbus' Table Models. It makes it easier to use the table models, easier to have multiple table views per view controller, and reduces the amount of properties you need to keep track of to make things work, especially for the most common use cases.

NITableViewDelegate conforms to UITableViewDelegate and handles the height for cells that conform to NICell. It itself contains a reference to id<NITableViewSystemDelegate, UIScrollViewDelegate>. It will tell this delegate when table objects are selected, when a cell is set up with an object and it will also forward UIScrollViewDelegate messages to this delegate, which is a common use case for fun interfaces.

NITableViewDelegate can be subclassed to provide custom header / footer views.

This is used frequently in a soon-to-be shipping app with our own table cell catalog.

This pull request isn't totally ready, there's a lack of documentation and the methods for updating, removing & inserting table objects & cells should use NIMutableTableViewModel. But I wanted to get some feedback on the addition before I go whole hog and clean this up.