Reformat old test cases
Refactor code in products.tests
Add tests for Prodcut.price_at
Add Product.price_at
Reimplement Product.current_price in terms of Product.price_at
Add tests for Product.min_price_at
Add Product.min_price_at
Reimplement Product.min_current_price