Combine piece/invoice piece/memo join tables

This allows us to use an explicit has_many through association on our
new PieceLocation model/join table.  The plan is to use timestamps on
PieceLocation to represent the piece's memo/invoice history.
Add timestamps to PieceLocation
Add methods for bulk PieceLocation deactivation

These are intended to be invoked when updating invoices or memos
Only join on active PieceLocation records
Prevent ActiveRecord from destroying join records

We need these to track piece history
Deactivate PieceLocation records on piece removal

This updates the removed_at field for the PieceLocation join associating
a piece when the piece is removed from a Memo or Invoice.
Remove status field from Piece table

Going forward this will be determined based on a piece's PieceLocation
history.
Expose piece history
Calculate Piece status based on its history
Methods for querying pieces based on their status
Inventory now only displays items in stock
Merge pull request #87 from nightsprout/zam/issue_73

Backend for #73