Feature filtering

This addresses #1299, #1871, #2033 

Adds:
* flexible feature definition
* sidebar to allow user to toggle features (hotkey 'F')
* info bar on bottom to warn user when features are hidden
* supports auto-hiding features (currently auto-hides >100 points, >100 buildings)

Not ready to merge yet, but looking for feedback.
I really like how this is coming together - dense areas are way easier to edit now.

TODO:
- [X] tests
- [X] replace hamburger icon
- [X] adjust text/tooltip language?
- [X] better handling of multipolygons? (e.g. should really hide inner 'holes' when hiding an 'outer' landuse)
- [X] restrict some edits if a feature is hidden? (e.g. moves, deletes?)
- [X] add wireframe mode? (#813)
- [X] make gpx tracks features instead of background? (related #2352, #2335)

Updated:
* [x] @samanpwbb's design suggestion for bottom bar
* [x] exclude selected ids from being hidden
* [ ] profile and improve performance where possible

Skipping this item for now, but I definitely want to revisit it later.  Would like to refactor some of the things in features and graph into a more proper graphics pipeline with stat/cull/render passes.
* cull features determined to be "too small" for current zoom (i.e. area is cached as a transient, so we can test quickly before rendering if a feature would only end up being a few sq px)



![screenshot 2014-09-16 16 02 48](https://cloud.githubusercontent.com/assets/38784/4294306/5bbdca92-3dde-11e4-9faa-339e99e47acc.png)

See if this logic can be moved to `iD.modes.Select`. (Listen to map `drawn` event, exit to Browse [like here](https://github.com/openstreetmap/iD/blob/433d7a50d9dd5c19ea014c0c4b8d135e5c0bb048/js/id/modes/select.js#L107-108) if [the selection's DOM elements](https://github.com/openstreetmap/iD/blob/433d7a50d9dd5c19ea014c0c4b8d135e5c0bb048/js/id/modes/select.js#L140-141) have disappeared.)