Avoid unnecessary self-joins in TripleRelationJoiner

Also uses primary keys as unique keys for databases that don't
return primary keys in the former (eg. postgres)
Access control scheme based on per-column ACLs and API keys

TODO: write more about it here
Use commit/rollback to force transactions to close

Makes postgres not die so badly all the time.
Use the ARQ Substitute operator before compiling queries

This makes parameterised queries using the inputBinding able to
have the input bindings compiled into the query, instead of
being post-processed later.
Add trimAccess implementation for RegExp expression

Needed to merge regexp + ACL patches