Major touchup

* Added docblocks
* Added namespace
* Improved composer configuration
* Streamlined the API (BC Breaks).
* Refactored code for more readability
* Added adapters. Guzzle as client is now interchangeable.
* Added request and response filters. Users can now modify the Symfony requests and responses to their liking.
Why should we? Thats the job of the user not of the library. Explicit is better than implicit.