Implement device filtering UI (bug 969244)

https://bugzilla.mozilla.org/show_bug.cgi?id=969244

**TODO**:
- [x] Unit Tests
- [x] Functional Tests
- [ ] Move some CSS rules outside of `compatibility-filtering.styl` (want to get feedback on it first)
- [x] Fix issue with arrow on Firefox OS
- [x] Desktop Screenshots
- [x] Firefox OS Screenshots
- [ ] Android Screenshots

**Screenshots (Desktop):**
![popular](https://cloud.githubusercontent.com/assets/187006/4290123/1d1c8974-3db9-11e4-92df-0b61fadee375.png)
![new](https://cloud.githubusercontent.com/assets/187006/4290121/1d1a614e-3db9-11e4-83b0-5a0c4ac9a013.png)
![category](https://cloud.githubusercontent.com/assets/187006/4290148/4b892bc8-3db9-11e4-853f-bc96780ec5f5.png)
![search](https://cloud.githubusercontent.com/assets/187006/4290122/1d1c3550-3db9-11e4-80ec-84a51c01fd50.png)
![select_focused](https://cloud.githubusercontent.com/assets/187006/4290124/1d312834-3db9-11e4-9d5d-bdf9489db3c0.png)

**Screenshots (Firefox OS):**
![firefoxos_new](https://cloud.githubusercontent.com/assets/187006/4291041/ee397b32-3dc0-11e4-8640-3261ce4de399.png)
![firefoxos_category](https://cloud.githubusercontent.com/assets/187006/4291038/ee026af2-3dc0-11e4-8fd0-44d9d277af9e.png)
![firefox_search](https://cloud.githubusercontent.com/assets/187006/4291037/edfbf410-3dc0-11e4-818f-4442c46eeda6.png)
![firefox_select_focus](https://cloud.githubusercontent.com/assets/187006/4291040/ee1e2ca6-3dc0-11e4-800f-275dff444990.png)


**Notes:**
- Styling a `<select>` is hell. But I didn't want to re-invent the wheel, so I tried to use one anyway and style it the best I could. On Android and Firefox OS, the options are rendered in some kind of native window, so it's fine, it's not great on desktop, but good enough IMHO.

Is this to deal with how `mock` works? Is it just the inner-most function that matches what it's mocking? Can you describe why there are three nested functions in this comment.