Mysql SSL test: Needs to verify it is using ssl

The MySQL SSL test was not actually testing that SSL was enabled.  It
was previously only detecting if SSL was enabled on the Server.
Travis config for Ruby 2.0.0, remove ruby-head
Make `cast_booleans` also cast BIT(1)

Using `BIT(1)` to represent booleans is a common pattern within MySQL. This makes the existing `cast_booleans` switch cast `BIT(1)` as TrueClass or FalseClass
Add secure source to Gemfile and Gemfile.lock

The source :rubygems is deprecated because HTTP requests are insecure.

	modified:   Gemfile
	modified:   Gemfile.lock
Merge pull request #363 from AJ-Acevedo/master

Change source :rubygems to https://rubygems.org in Gemfile and Gemfile.lock
Add license to gemspec

Prior to this commit, the gemspec did not include the license, which
means that one can't use the rubygems API to automatically determine
licensing of vendored gems. This commit adds the licensing to the
gemspec.
Merge pull request #360 from globaldev/cast-bit

Make :cast_booleans also cast BIT(1)
Merge pull request #366 from jeffweiss/master

Add license to gemspec
Remove the check for SSL CA or Key being set.

Currently, the C bindings for the mysql2 gem enforce specifying either
the ssl-ca or ssl-key option, in order to set any of the SSL flags.
This makes the usage of mysql client worse for a few reasons. For one,
it's impossible to specify the ssl-capath flag by itself. This is
troubling if the server certificate is signed by a trusted authority,
whose certificate is present in /etc/ssl/certs, for example.

The other issue is that --ssl-cipher may not be specified on itsown.
The reason it may be desired is that it forces the client to use SSL
to connect to the server, without requiring the client to validate the
server certificate. In certain situations that may actually be
desirable (e.g. self-signed certificates which do not have a CA
certificate generated).

This patch also guards against calling mysql_ssl_set() uncondtionally
by ensuring that at least one of the SSL options is set.

Fixes: #355
Merge pull request #373 from maginatics/remove_ssl_ca_key_check

Remove the check for SSL CA or Key being set.
Merge pull request #358 from docwhat/fix-ssl-test

Mysql SSL test: Needs to verify it is using ssl
Add rbx-20mode to Travis
Add task spec:valgrind
Merge pull request #376 from sodabrew/spec_valgrind

Add task spec:valgrind
Track connection refcount to prevent GC races

In certain cases a Mysql2::Client and a Mysql2::Result may be freed
in the same GC run. If the Client is freed before the Result a segv
may occur when the Result tries to use the socket to make sure there
isn't any more data to read before freeing itself.

Huge thanks to @evanphx for helping me track this one down and @rkh
for helping with TravisCI since that's where the issue was finally
reproducable.
If a Result is freed after it's Client, allow it to free the Client's
underlying MYSQL* structure to prevent leaks. This will be pretty
rare but needs to be accounted for.
need to re-think this test
bump timings in this test again
Result objects now keep a reference to the Client that they came from.
Refactor how options and encoding are passed from Client to Result