Historic data integrity of sales records

SalesRecord instances cache the name & price of their product on
creation, so editing products does not affect historic sales data.