Merge pull request #159 from MargaretLangley/master

shell used to replace empty columns in indexes, compacted lines, client ...
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
InvoiceMaker removed
Comments updated for invoicing code
Seeds fixed
product refactor page2?
snapshot returns the state of the invoice
Forget state added.
invoice logic pushed into invoice object