This allows for the sending of multiple items in a single order, by
adding a new `OrderItem` class and moving all of the order item specific
fields from the `Order` to an individual item.
These can then be assigned to an order using the `withOrderItems()`
method as an array of order items.
Fixes#19
Make the Client parameter optional when creating auth token, customer or
order requests, and create a new Client instance within the abstract
request if one isn't passed in.