RelationKey: use better defaults for PostgreSQL and SQLite

We can simply separate by ':' instead of '#' or ' '.
JdbcAccessMethod: better use of quoting identifiers
MasterCatalog: STRING is not a valid type

It is actually TEXT. See http://www.sqlite.org/datatype3.html#affname

> And the declared type of STRING has an affinity of NUMERIC, not TEXT.
MasterCatalog: fix LONG to INTEGER

http://www.sqlite.org/datatype3.html#affname
RelationKey: warn when using identifiers too long for postgresql
JdbcAccessMethod: error with quoting
Server: escape profiling queries
Merge pull request #602 from uwescience/slxu-kill-query-at-aborted-downloading

Slxu kill query at aborted downloading
Merge branch 'master' into backend-dbms-fixes
QueryConstruct: remove unnecessary toString() calls
DoWhile: remove unnecessary toString() calls
RelationKey: shorter temp relation name
QueryConstruct: catch singleton bugs

See uwescience/raco#352
DatasetMetadataUpdater: do not redundantly add stored relations

Fix #622
systemtest: set overwrite flag in JSON

Also print message when queries fail
RelationWriteMetadata: when appending, do more Schema verification and keep existing workers
PlanFragmentEncoding: add explicit variable for overriding the workers

With DoWhile, we might instantiate the same Fragment more than once.
Thus, with the existing format of the PlanFragmentEncoding, we could not
distinguish between the set of workers used for a prior run through the
loop and a manual override of the workers.

As the set of workers storing a relation can change between loop
iterations (e.g., a relation is initialized to a singleton but then is
joined with another relation and occupies all workers), when the set of
workers is not forced we need to update it every iteration.
fix JSON unit tests with new format
jsonQueries: rename workers field in all json plans
build.gradle: print exception info when test fails