Make Oracle timestamp format consistent with pg and sqlite.

Avoid the "ORA-01801: date format is too long for internal buffer" error by
breaking up the `to_char()` into two separate calls, one for the date, one for
the time, and concatenating them.

Also override changes_requiring_change() and name_for_change_id() to avoid use
of LIMIT. Need to use CTEs because, while Oracle allows scalar subqueries,
they can refer only to columns in their immediate parents. And because we need
to LIMIT, the parent has to be `SELECT * FROM () WHERE rownum = 1` -- not the
main query. Annoying, but the CTE is a good enough workaround.

Also update dt_for_event() in the test suite to execute a different query for
Oracle, again to avoid OFFSET and LIMIT.