Add add, search, edit and delete book support for Catalog. Add some more tests and do some refactoring.