Add test for zero search results

Returns an empty array from the search method when no items match the
given search criteria
Extract Library class
Move Library into it's own file
Add UIDriver modules

Extract explicit calls to Library to a driver module to separate it from
the step definitions.
Add an instance variable for Library collection

Replace the Library#collection method, with it's hard-coded library used
for testing, with an instance variable. The hard-coded library test
  collection is moved into the UIDriver.
Merge branch 'search/no_results' into team-solution

Conflicts:
	features/search.feature
	features/support/ui_driver.rb
Merch duplicate step definition files

Two sets of step definitions had been created by teams working on the
same feature separate from each other. This commit merges the duplicate
files and deletes the spare.
Change the Bookshelf c'tor to take an array

Two classes doing the same thing but with different names have been
created performing identical roles. As part of the process of merging
them, the constructor of one has been modified to match the constructor
of the other, making the eventual merge easier.
Remove duplicate Library class