write Cart Model

* extends Order
* new maintain(), cart item maintain wouldn't work
* Purchase Component now sends Cart the Session component so it's not a recurring method arguement any more
* cartExists()
* cartId()
* count()
* retrieve()
Caching is not in place yet
simplify cart queries and clean out old cache properties

- eliminate concept of variable-containment queries
- eliminate caches that supported variable containment and cart item-counts (now handled by Cake's model counter-cache feature)
make Cart->retrieve() cache the result

- made some generic cache methods in AppModel too
cleaning up cart item, moving into add-to-cart testing
progress debugging cart refactor

- cart records are saving and retrieving
- cart items are attaching to carts
cart migration: items save, counter cache working