Add tests for JsonBodyParser
Add headers to the Auth trait for more flexibilty
Adding tests for the Http implementations
Add support for async Http

This is done using a higher kinded type in Http. We use the Identity
Monad for syncronous APIs and Scala's Future Monad for asyncronous.