major Cart rehash
- remove create and last_modified methods
- move attr/method pod back within code
- add discount_percent & update Cart::Product as appropriate
- remove all horrible get/set accessors
- move around add_hook into Hookable role where it belongs
- on add also add cart obj to product being added so we can get back to
  cart from product
- update Cart::Product