Attempt to unify query escaping between dialects

All dialect implementations re-implemented escaping, resulting in
(roughly) the same code being written four times in the codebase. This
moves all of that into SqlString.

I say "attempt to" because I haven't been able to run all the unit tests
locally (my netbook that I'm on at the moment is too slow and causes
timeouts in some tests).