Implementing table construction based on the "real" data source

Had to remove the MainColumnProvider etc as this was based on the ResourceLocatorAdapter
which is gone.

This code is focused mostly on the server side: we will need to look next at client-side
implementaiton running on top of indexeddb/sqlite/localstorage?

Still need to handle joins of > 1 depth and add caching with datastore+memcache.