Refactored to touch base with Object Calisthenics

The refactor, can provide an easy integration with frameworks like SF2 and ZF2.
In the case of SF2, the user just need to declare the services into the container and do the properly injection

 - This was made to possibly create a SF2 Bundle for the Marketplace PHP SDK and make the services "injectable"
 - Each object has it own responsibility
 - Using Guzzle instead of call libcurl manually and the OAuth extension
 - 100% coverage
 - Added support to Travis CI
 - Added support to packagist (https://packagist.org/packages/mozilla/marketplace)

Can easily be reverted to use the OAuth extension instead of Guzzle