Removed re_run specific classes
RunMaker => InvoicesMaker
Now all runs use the same invoice generation code we don't need to care if this is the first invoice
snapshot has account and period added to allow querying for snapshots
Refactoring productsMaker, snapshot, snapshotmaker
deliver boolean => enum
Product calcualates the balance given an account and a day
Arrears calculated by Product.arrears rather than being calculated and passed in
products takes invoice_date
Invoice no longer takes products in prepare
InvoiceMaker no longer takes products in new, products_maker removed
ProductsMaker removed
InvoiceMaker not using period argument
Invoice account removed from prepare
Invoice no longer needs direct account association - it gets it through snapshot
InvoiceMaker takes property instead of account