C4: functional testing of controllers

"Functional" here means testing the actual view that is generated by the
model, view, and controller all working together.
add all images
C5: caching of partial results
D1: add cart
D2: connect products to carts
db: seeds: more seed data

We also cannot use just plain 'Haskell' for the 2nd product's title,
because it fails the >= 10 chars validation test.
D3: 'add to cart' button
E1: create smarter cart
E2: handle errors
E3: finish cart
F1: move cart to sidebar
F2: create ajax-based cart
F3: highlight changes to the cart

Pg. 147 of the book is deprecated; see
http://stackoverflow.com/questions/24819381/application-js-cant-find-jquery-ui-effect-blind
.
F4: hide empty cart
F5: make images clickable