Create a map of top charges by community area

Add a map of the top charge by community area.  For now this is in
``top_charges.html``, which is a sort of sandbox, but eventually it
should be moved inline with real content.

Add a custom Jinja filter, ``community_area_top_charge_json`` to
transform rows from the ``top_charges_by_community_area`` Tarbell
worksheet into JSON that we can easily consume with JavaScript.

Add a ``join()`` method to ConvictionGeoJSONCollection to let us merge
in extra attributes to the collection.  This is a bit of a hack, but
it's a lot easier on the data maintenance side to maintain the GeoJSON
for community areas and conviction rates separately from the most common
charges.

Factor out some of the functionality around the bins to make separate
classes for range based bins and for categorical bins.  We need this
because the map we're adding is colored by category rather than picking
a bin based on a numeric value.

Remove map creation functions and instead just instantiate the Backbone
views that act as map wrappers.  This makes it cleaner to share the
collections for the community area features between multiple maps.

Factor out common functionality in ``ConvictionRateMapView`` into a new
base clas, ``ChoroplethMapView``.

Create a new view, ``CategoryMapView`` to make a choropleth where the
coloring uses category-based bins.