refactored cart service to split out addToCart and setMetadata
CartService interface now provides more fine-grained control over the composition of the cart, better consistency of CartService method signatures, added custom equality tests to some model objects, added Guava for access to more functional programming paradigms (such as Predicate), added test suite, beginnings of the Consignment implementation