Add gateway_id and id for the Cart
Make some attributes rw in the Cart

Very often, global and public attributes cause a lot of trouble. This is
not one of those cases, so lets not be too picky.
Optimize adding items to the cart

Attempt to load the Item class only once per cart, not at every call to
add_item(). Also, stop accepting objects in add_item(), to make API
leaner and code simpler. There's no reason why anybody would need it
anyway. Edge cases can mess with _item_class attribute.
Be a little more strict about phone numbers, and improve docs
Explain changes
Accept Account objects when creating buyers
Use `add_item` when building carts too

Make the interface a little leaner. Only accept hashrefs for the items,
and use `add_item` to add the items, instead of passing them to the
builder.
Make description and quantity optional

Description is not needed everywhere, and quantity can have a default of
1. Also, be less explicit about attributes which are not required.
Create attributes _buyer_class and _cart_class
Bump version
Create helper method to build Account obj's too
Document new_account
Add `new account` changes