refactor: add containsImages function and convert request to use promises

- Refactor image checking logic into its own function
- Refactor C array pushing to JS .push
- Fix extractResultItems to return an empty array if no works were found
- Refactor JSON requests to return a promise
refactor: refactor _.indexOf checking to use _.contains instead
feature: add BookResource module responsible for retrieving book data
update: include bookResource.js and display thumbnails instead of images

- Without a web-scraper there is no way to link to actual images. For now
we are using thumbnail urls instead as they mostly link to actual image
data
update: create actual book by decade instead of using test data

- Fix Trove by initialising with API key
- Move book creation and rivets binding to BookResource callback
- Change test data 'src' property to 'source' in line with Trove API