Fix regression, save only ONE front image when "save_only_front_images_to_tags" is set

This regression was introduced during code rewrite, option name is misleading.

See https://github.com/musicbrainz/picard/pull/116
See PICARD-350 (which wasn't closed)
Only download one front image if no more is needed according to options
Merge pull request #333 from zas/fix_front_image_only

Fix regression, save only ONE front image when "save_only_front_images_t...
Split cover art providers to their own classes and files

- add extension point so one can write a cover art provider plugin
- minor changes to ease the move
Introduce CoverArtProvider.match_url_relations() to reduce code redundancy
Raise NotImplementedError
Drop now unused `caa_front_found`
Remove unneeded wrapper methods
Clarify queue_downloads() return values
Fix up `CoverArtProvider.match_url_relations` description
Describe CoverArtProvider class
Improve handling of PDF cover art from CAA

- detect PDFs in imageinfo
- exclude PDFs from images to be written to tags
- display info about PDF in info dialog (need more work)
Download pdf cover art only if needed, download main file, not thumbnails.

This patch solves 2 issues:
- pdf files only need to be saved if "save_images_to_files" option is set, PDFs are never embedded in tags
- ignore "caa_image_size" option which causes thumbnail of the pdf to be downloaded instead of the main file
CaaCoverArtImage: specify constructor, accept is_front
Move _queue_from_caa() code to _caa_json_downloaded(), simplify
Display thumbnail image for PDFs in info dialog

It requires few changes in CaaCoverArtImage, basically one property (is_thumbnail) to indicate
the image is a thumbnail so it isn't added to metadata.
And a thumbnail property to link main image to its thumbnail.