Asynch client

Hi Jon,

This one builds on the last pull request; significant changes are that I have moved some common code into a base class that both SardineImpl and SardineAsynchImpl can use.  I have also removed a few deprecated methods, 
and I have removed the set compression method from the interface, as this set doesn't align with the httpclient 4.3
design, where client instances are immutable.

Also, the asynch implementation is quite limited; only put from file is supported. The other methods should be easy to do, but I don't have time at the moment :)

Cheers,
Aaron