Try to infer the time zone for timestamptzs from TimeZone

When receiving a "timestamp with time zone" value from the database
we try to set its time zone based on the current value of TimeZone.
If, and only if, the offset we got from the local time zone database
matches the offset we got from the server, we return the new value
with time zone information.  This way the user always gets the time
as the database sent it (even if the local database is not in sync
with the remote one), which maintains backwards compatibility and
avoids confusion.

This should currently work correctly in all cases, but if we ever
start supporting multiple simultaneous queries, we will have to be
careful to use the correct TimeZone value for each of them.
Add test cases encoding in both output formats