Handle failure connecting to version.ushahidi.com #851
Tweak the nav helper to allow hiding custom pages #852

This is so that custom deployments can hide one or all pages from
the menu. Then they can add custom links if needed through plugins.
Basically, its a quick hack so we don't have to build out full
menu reordering.
Dont require imap extension during install #787

This is just the quick fix to remove the requirement. It would be better
to mention it / warn about it during install.
Add additional actions pre/post main category filters #855
Add event ushahidi_filter.get_incidents_sql #854

Allows plugins to alter get incidents sql, specifically used
by sharing_two plugin
Add event ushahidi_filter.get_neighbouring_incidents_sql #854

Added to allow the sharing_two plugin to modify SQL for grabbing incident
neighbours.
Refactor JSON controller: increase code reuse, modification points #853

Split out code for parsing params, generation geojson arrays and
rending geojson. Now cluster() and index() both call geojson().
This parses parameters and calls either clusters_geojson()
or markers_geojson() to get the markers arrays. Markers are
passed to render_geojson() to render the final JSON output.

clusters_geojson() now reuses markers_geojson() for the single
point markers left over after clustering.

single() also reuses markers_geojson and geojson() render
after man fetching single marker and neighbors.

We jump through a few hoops to handle both std_class objects
and ORM objects as markers. Particularly lat/lon can come either
directly in the marker object or accessed through the a
location object. This is to make it easier for plugins to
tweak everything.

We're no longer storing cluster distance as this wasn't
used and was breaking real ORM objects

Also add more events to tweak marker or json:
* altering or replacings markers before they are clustered
  or converted to geojson.
* Add generalised event for modifying json_features
Always show report thumbnails, not just when filtered to photos #853
Don't use default map icon if filtered to category w/o icon #853
Fix incidents API task splitting media urls into 2nd media item  #856

Media link_url and thumb_url fields were being split into a 2nd item.
Return them as part of the correct media item.
Don't reload incidents with ORM in reports listing view #857

Removes about 1 query per report listed, and makes it easier to mess
with the reports passed to the listing
Better use of url::site() in views/reports/list.php #857

Use uri parameter of url::site() rather than manually joining strings
this improves readability of the code
JSON controller: handle media urls using url::convert_uploaded_to_abs() #853
JSON clusters: pass through all GET params to cluster urls #853
Add helper methods for getting incident URLS #857 #853

These are used in the json controller and reports listing
JSON::markers_geojson() - Get URLs from object or Incident helper fn #853

Allows plugins to pass markers with their own url attribute or method
Add event to reports/reports_js view to allow adding extra filters #857

Adds event: ushahidi_action.report_js_filterReportsAction
JSON: include marker class in GeoJSON details #853

This is a hack so when plugins like sharing_two pass extra markers
via events we can tell which is which. Sure there is a better way
but this is quick.
Add category description as title text on <a> tags in main/reports pages #858