Refactor API to match Guzzle 4.x style

The public and internal APIs now use and match Guzzle 4.x interfaces,
including MessageFactory and Adapters.
Update unit test suite
Update dependencies
Add functional test suite
Add makefile

Tasks make running the functional test suite with the server much easier
Update Travis-CI config
Update the readme and docs
Check the response before setting
Remove HHVM-Nightly from travis config

HHVM-Nightly still isn't installing correctly on Travis-CI.
Remove PHP test server in favour of nodejs

Supporting the PHP test server across build environments was becoming
difficult as HHVM serves over FastCGI and the PHP dev server doesn't.
Opting for a nodejs server means we can use the same setup for each PHP
environment.
Fix path to NVM on Travis
Update link to Guzzle 3 client
Make request ID parameter mandatory in client
Merge pull request #13 from graze/guzzle-4.x

Guzzle 4.x compatibility