Error encoding is mixed/binary if MySQL < 5.5 and connection encoding if MySQL >= 5.5
Rewrite the error encoding specs
Spec titling for MySQL version under test
Merge pull request #459 from sodabrew/binary_error_strings

If the server version is less than 5.5, set the error text to binary
we don't plan on supporting other output formats, for now
Ruby 2.1.0 on Travis, no longer expected to fail.
Timeout behavior has changed in Ruby 2.1, set these tests to pending for now.
Merge pull request #467 from sodabrew/ruby_21

Travis update and spec workaround for Ruby 2.1
Always give the GC some time, not just on Rubinius
Temporary workaround for broken Rubygems on Travis
result: avoid dynamically-sized stack allocation

Otherwise, long field names have the potential to cause stack
overflow and perhaps slow down the MRI GC.  This reduces one
extraneous data copy while we're at it, too.

Using the checkstack.pl script in the Linux kernel reveals
no other dynamically sized stack allcations after this change.
usage: objdump -d mysql2.so | ~/linux/scripts/checkstack.pl x86_64
Merge pull request #480 from brianmario/stack-allocation-fix

Avoid dynamically-sized stack allocation
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