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
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