Added support for hhvm by making PECL dependencies optional.

Added fallback functions for msgpack
Added Credis_Client as a fallback to Redis
Maybe we could remove the need for a check here, leave the connecting to be done outside the constructor and just say we support any redis client that can do `publish`? `Credis_Client` could be given as an example.

That being said, I'm fine merging this PR as is and exploring this option afterwards. :)