books without home shelf are valid, no idea why I thought otherwise
add viewmodels to autoload path
make BookSearch do a query that's actually valid against the Book
books#index route uses BookSearch
use rr special mock! syntax for chained method expectations
book_search: don't search for collection_id in(null) if the caller did not specify collections
book_search: don't search for current_shelf_id in(null) if the caller did not specify shelves
CVE-2013-0269 upgrade json gem