Introduce Xeroid::APIResponse to allow universal handling of valid/invalid responses
Add APIResponse.handle_many_response
Add in trivial support for handling HTTP 400
APIResponse instances can return their object and status
successful responses report that they're okay
An APIResponse from an HTTP 400 reports that it's not okay...
Deserisalise ApiException documents into ValidationErrors objects
Return APIResponse objects from Endpoint calls

Instead of the deserialised objects, return APIResponse, which should
allow unified handling of successful and unsuccessful requests (e.g.
validation problems)
Stop passing APIResponse status as a hash
Correctly construct post body
Fill out modules with autoload statements and sensible requires
Use correct APIResponse constant and genuinely minimally valid invoice in WIP spec
Fix typo in Invoice::Status::PAID; bring line_amount_type into line with element names (as line_amount_types)
Add total, sub_total, and total_tax
Add several attributes to the Invoice deserialiser

Added:
* type
* date
* due_date
* status
* sub_total