Add custom request and response classes.
Remove obsolete comments.
Add Formats module for response.
Extract typhoeus code into adapter. Queue request through client to allow client specific modification.
Set attributes only for public setters.
Add first basic middlewares.
Update spec.