refactored doRequest method
created base for http client
allow usage of custom clients
added base client options ; added possibility to change response format
added possibility to change api version for next request
added getApiBaseUrl method for http client
implemented ClientInterface
save last request and last response
replaced curl client with the new one in Api.php (+BC)
updated http methods from Api.php to use the client (+BC)
Api.php: removed unused code, updated methods to use the new http client, removed process response method (+BC)
updated ClientInterface
make tests pass again
added tests for new http client
added setClient method inside Api.php which allow to set a custom Http\ClientInterface client
Merge branch 'feature/http-client' into develop

Created a new Http Client that will allow to make changes without breaking BC.

    - API available through Api.php has been unchanged from the user perspective, although its using the new Http client.
    - Some methods from API.php has not been removed, although they are not used anymore, just to keep BC. (@see processResponse as example)

Note[1]: NOT ready to be merged into master at this point, because all the authentification is broken!
added ListenerInterface
implemented ListenerInterface ; TODO: add tests
Updated Api::setCredentials to use the new BasicAuthListener (+BC)
updated ClientInterface: added addListener method