Integrated search and error messages

Note: search does not work at the moment because of a bug in
BookingController.isBookable()