Drop in classes for Eventmachine support

Hi @njh,

Thanks for writing this nice protocol lib.

Note that I have `EM.defer`'ed all blocking `TCPSocket` operations. This seems to be more stable than using an `EM::Connection`

Also, it seems that `read_byte` actually gets a lot of `nil` values. So I've tried to make it more forgiving.

Finally, I have been having issue with `autoload`. I have left it there, but I think it can be done in a better way.

Cheers!
@balwantk