Refactor book into a namedtuple subclass

Book is now a subclass of namedtuple in order to add methods.
It has been renamed to follow naming conventions.
Add a method to concatenate all fields of a Book

This method will be used to search a string in any field of a Book.
Add a method to filter Books on any fields with a search term

The method will only return Books that have a field containing the
search term.
Search is case insensitive.
Any field can be match.