Clean up main, add skeleton edit functionality

Break out much of the stuff in main to separate functions to ease readability.  Add the skeleton to implement an edit button.

Cleaned up code to make it more oo.  Book no longer has a createFromDict() method, instead, in cases like that, there's a createBookFromDict() function in the main to do the same thing, but in an oo way.
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
Start implementing multiple author support

Prompts should all have been changed to reflect multiple author support.  All places where the program isn't just stupidly printing off the book make things look nice.
Multiple Author Support Complete

Prompts and outputs have all been changed to represent the new philosophy on multiple authors.  Multiple authors should be 'officially' supported now.  While not elegant, all necessary features function with multiple authors.

Close #6
Merge branch 'feature/multiple_authors' into develop
Merge branch 'develop'