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.