fix bad-caching of datetime with tz info at sql generation time
There is a special handling for datetime with tzinfo, where value was stored in
the query cache. The implementation of merge_args was simply overwriting
parameters of the query with those in the query cache, expecting no collision.
To fix this:
* handle replacement of tzinfo in merge_args, not at sql generation time
* add an assertion to ensure we've actually no collision
Closes #6978316
option_group_changed('port', 'main', 'web')
option_group_changed('query-log-file', 'main', 'web')
option_group_changed('profile', 'main', 'web')
option_group_changed('max-post-length', 'main', 'web')