adds mobile, drupal, and request api

Closes #666 :scream: 

Helper methods ported over wholesale with a few modifications. All tests ported over and were most helpful. :+1: for tests
To clarify, we should still put the holdings info on the show view.