Improve new String operations introduced in #843.

- Fix substring
- Push string operations up to RelationalDriver
- Use default JDBC escape functions in JdbcStatmentBuilderComponent
- Document the missing capabilities
- Support indexOf in DerbyDriver and SQLiteDriver
- Support reverse in AccessDriver
- Use proper Option-mapped Column types for all operations
- Simplify and speed up the tests

Supersedes #859. Review by @cvogt 
We should do this with the interpreter. But it requires some refactoring and improvements there, plus explicit AST nodes / library functions for all use cases (like the SQL-specific substring function) and refactoring of drivers (in cases where driver-specific syntax is created directly in codeGen)