Do Not Raise Error With Ruby 2.0

I found that using Ruby 2.0 was causing an error to be raised when
working with the threaded async mode of sending messages. This is no
longer the case as I've removed an artificial constraint preventing use
with Ruby 2.0 from the code, and ensured that testing for 1.8.7
behaviour occurs regardless of the verion of Ruby that is being used to
run the tests.

Note that I've also removed memoization from Sender.senders. It seemed
very unnecessary, and is likely not a performance issue.

This change is not perfect though. There's far too much knowledge about
threading and its limitations scattered throughout the code. This
knowledge should be restricted to the threaded Sender itself.