Backend for #73

This should hopefully take care of #73 as far as the backend is concerned.  All Piece/Invoice and Piece/Memo join associations are now tracked through the PieceLocation table.  PieceLocation records are archived using a timestamp when a Piece is removed from a Memo or Invoice, so the piece's entire history should be available.