Add edit functionality

Books  already stored in database can now be edited and replaced in database.

One possible concern is, I think, if the barcode changes, it will create a duplicate entry in the database, as the barcode is the primary key.
Fix duplicate database entries when editing

When editing a book and the barcode is changed, it no longer creates a duplicate entry in the database.
Can edit if you have barcode

I had forgotten to implement editing using just the barcode.  This fixes that, as well as a related, lurking bug in the retrive() method of bdb.
Merge branch 'feature/edit_books' into develop