finish first part of database -> tilesource refactoring
- now there is a clean separation between TileSource type
  and TileDataSource(worker instances)