Ensure error messages are always valid UTF-8

Given all of the scenarios for a MySQL error message's encoding,
the end result is either a) a potentially corrupt string
or b) a valid UTF-8 string. In any case, we'll want to end up with
a UTF-8 string eventually.
make sure we return error message and sql state in Encoding.default_internal if set
try and work around rspec bug maybe?
make sure all test clients use DatabaseCredentials
reset Encoding.default_internal before depending on it's behavior
use a more specific UTF-16 variant
replace invalid chars on encode
clean up reassignments of Encoding.default_internal to ensure it's set back to it's original value
allow rbx failures for now

See https://github.com/rubinius/rubinius/pull/2892 for more info
use '?' for replacement character even on 2.1 and mysql 5.1
Merge pull request #482 from brianmario/error-encoding

Ensure error messages are always valid UTF-8