Allow multiple stockrecords per product

*This is a work in progress*

Allow multiple stockrecords per product instead of just one.  This allows:

* more sophisticated logic like rolling over to an alternative partner when stock runs out from another.

For performance, perhaps add an additional field to the product model which references the preferred stockrecord at any one time.  

Tasks:

- [ ] Change model structure and get site working
- [ ] Rework availability functions
- [ ] Add/edit stock records in dashboard
- [ ] Assume one per product by default?  That is, a customer can't choose which to use
- [ ] Change basket to track which stock record was chosen