Allow UnshapedQueryExecutor to be extended by profiles.

We already allow this for the standard QueryExecutor. We need the same
for UnshapedQueryExecutor in order to add the "selectStatement"
method at the JdbcProfile level.

We also add an "executor" method that will compute the real (shaped)
executor for caching it in user code (analogous to the existing
"executor" field in QueryExecutor).

Test in MainTest. Fixes issue #548.

Review by @cvogt