Book Domain Internal events and testing

Added new tests for what will happen when a book that is out on loan
already is attempted to be loaned out again. Added a new
CannotLoanBookException which will be thrown when a book is out on loan
and is attenoted to be loaned again.