Adapter to allow batch updates for table/collection view data sources

Unit tests for table view data source as well. Same principles apply to collection views.

Will need some usage testing to ensure it doesn't fail for specific cases. Many combinations of operations are possible.