Assorted test improvements

This PR is an attempt to get the tests most of the way to being reliably green.  The big changes are:

1. Updated the memcached process launch to include retry logic in the case of failure or a slow launching process (the most common failure case)

2. Reduced the number of memcached processes launched, while ensuring that specs that require custom processes or that test failure cases that require killing processes are handled separately.

3. Fixed several specs that were not running because they were being passed in a block to a method that did not yield.

4. Changed the library so that Timeout::Errors are passed up the stack if they occur in the marshalling logic or the request method of the Dalli::Server

At the end of this, the specs are green most of the time.  The Dalli::RingErrors have almost entirely disappeared, and the specs are green under Rubinius much of the time.  

The remaining intermittent failures are mostly in the timeout spec.  I think this may represent an actual underlying problem - at the least it requires more investigation.

Finally, after trying to fix the SASL specs it's clear that they simply aren't working on my Mac (with SASL enabled Memcached).  Even the currently passing specs don't really test anything because they only cover the auth failure case.  Since auth always fails, this isn't much of a test.  I'm not sure if auth can work in the Travis CI environment