Compile client-side mapping to JDBC-specific conversion functions.

JdbcProfile uses a new JdbcCodeGen phase which compiles not only the
server-side tree to SQL (+ a setter) but also the client-side mapping to
a function for extracting the row data and mapping it to the correct
client-side type. JdbcInvokerComponent#QueryInvoker is modified to use
this new system for reading the ResultSet (but not yet for updating).

This commit also fixes a bug in the typing of ConditionalExpr which was
uncovered by relying on correct type information for the query results.