Allow per-instance overrides of Postgres.force_standard_strings and .client_min_messages (Fixes #618)

This also includes a small change to handle string escaping in the default
case if PGconn.escape is not defined (very unlikely).
Make foreign key parsing on MySQL not pick up foreign keys in other databases
Try to raise more accurate error message in serialization failure

I think it's safe assumption that the more valid error message is
the first, since we switched to base64 encoding by default about
5 years ago.
Handle setting :force_standard_strings and :client_min_messages in URL
Add specs for marshal serialization edge cases
Unbreak foreign key parsing on do/mysql and jdbc/mysql

There should probably be a better way to handle those two
cases, but just return them to the previous working
behavior for now.