Refactor how we identify present libraries, locations, callnumbers, and ...

...mhld.

Closes #405 
This PR also addresses some un-ticketed issues around MHLD locations w/o any MHLD data and which MHLD locations we display on the search results.

## Examples

### 10178529
---
#### Before
![10178529-before](https://cloud.githubusercontent.com/assets/96776/3560275/9066d40c-0961-11e4-920c-df21861ea332.png)

#### After
![10178529-after](https://cloud.githubusercontent.com/assets/96776/3560276/97ae2116-0961-11e4-93af-7fff84f690e1.png)

### 10495972
---

#### Before
![10495972-before](https://cloud.githubusercontent.com/assets/96776/3560278/aaa40fec-0961-11e4-91f0-1b37853fabf3.png)


#### After
![10495972-after](https://cloud.githubusercontent.com/assets/96776/3560279/adca75c6-0961-11e4-9629-d43bd3c75f6d.png)


### 10390590
---

#### Before
![10390590-before](https://cloud.githubusercontent.com/assets/96776/3560282/c1774ffe-0961-11e4-8aa9-ecdceb56f3cc.png)


#### After
![10390590-after](https://cloud.githubusercontent.com/assets/96776/3560283/c51c319c-0961-11e4-9e59-25dc78cb2a20.png)

@jkeck For an item that has no callnumber, it is given the value "(no callnumber)" and displayed that way in the gallery view. To my knowledge that is the only place in the results view where that would be displayed. @jvine Is that ok, or should the callnumber bar be blank?

![screen shot 2014-07-13 at 10 19 12 pm](https://cloud.githubusercontent.com/assets/1656824/3567305/6dcb1082-0b16-11e4-948c-6796b49af20e.png)