Support thumbnails for Videos

* Add VideoEmbed::thumbnail() and rework existing embed() code
* Make reports::save_media() save video thumbnails too
* Allow grabbing video embeds without echo'ing immediately.
* Add events to allow plugins to add additional services
Fix errors when deleting media with link set to ""

Adds check to make sure we have a value in the DB before checking file
exists
Fixes for deleting feed items

* Fix #981 - SQL error when multiple items selected for deletion,
  and multiple items deleted when delete button pressed on single entry
* Fix #785 - No button for multiple delete feed items
Reduce code duplication in VideoEmbed::thumbnail()
Better handling of youtube URL without v= first #982

* Also restructing when/where service detection happens
Merge pull request #968 from rjmackay/feature/video-embed-thumbnails-294

Get thumbnails for videos
Make api?task=reports able to submit reports too #988

* Also make sure the user id is saved with report too #987
This fixes issue #994 - Category_Model::get_categories doesn't work with prefixes in the database
Edge case when RiverID doesn't return an object.

Sometimes checking if a RiverID user exists returns simply false, which isn't an object, which should be handled properly.

Fixes #995
Merge pull request #990 from rjmackay/api-report-submit-fixes

Fixes for reports submission in admin API
Rewrote a large portion of the CrowdmapID authentication driver to resolve character encoding issues and improve error handling.
Whoops. Left in some debug code with the RiverID update.
Fix upgrade102-103.sql to work with DB prefixes

Double space after 'ALTER TABLE' was causing the find/replace to
be missed for the first SQL query.
Fix missing table prefix when listing messages by reporter #992
Merge branch 'develop' of git://github.com/ushahidi/Ushahidi_Web into develop
Fix #993 undefined variable when resetting password.

I think this fixes #993 but it might not be complete since afaik this
should only affect crowdmap.