Towards thread safety

Multiple QuestStatements may be executed in the same time, in multiple threads. 

For supporting such feature, important changes had to be made to Ontop.

Thread-specific objects:
  - QuestStatement
  - SQLGenerator (cloned for each QuestStatement; in the future, could be made thread-independent)
  - DBMetadata and DataDefinition (cloned for each new QuestStatement)

Classes made thread-safe (their attributes cannot be muted by threads):
   - Quest (some attributes removed, others made unmodifiable)
   - DatalogUnfolder (attributes removed)
   - QuestUnfolder
   - SesameAbstractRepo (connection attribute removed)
   - SesameVirtualRepo (connection attribute removed)
   - UriTemplateMatcher (immutable)