Fix for #17, plus test and connection refactor

This should fix #17, all (refactored) tests pass on 1.9.3, 2.1.1, jruby-1.7.11, and rbx-2.2.6.

However when I started digging into the tests that led to all sorts of other issues that I have made separate commits for, feel free to let me know which of these you actually want, etc. This many changes make me very nervous, and I still need to try the new code in our project. Would like some confirmation that everything continues to run normally for people already using the client. 

Main changes:
 * use encoded strings everywhere instead of Beefcake Buffers
 * tests now split for TCP and UDP transport
    * some tests could not be shared because they way the original was testing was using the return value from the `<<` call so that only works with TCP transport... you should take a look and see if these should be changed to be consolidated or I screwed something up
 * `#connected?` methods are mutex locked and seemingly fixed (doesn't seem like they would have worked before?)
 * added `gemspec` and `Gemfile` to make my life easier for testing the various rubies
 * removed `Client#connect` since `tcp.connect` doesn't exist and no one was calling it