Implemented database cart

Created OrderCart that behaves like Cart but saves to the DB
Implemented CartOrderConverter to convert from Cart to OrderCart
Added a state machine gem (AASM) to track order status and prevent incorrect state changes

This means we can use the following methods to ask an order about its state:
  ordered?
  may_place?
  cancelled?
  may_cancel?
  completed?
  may_complete?
  paid?
  may_pay?

And we can use the following to change an order's state:
  place!
  cancel!
  complete!
  pay!