Wrap QObject.tagger.window.set_statusbar_message() in new message() class method
Pass url as text to _append_image_url() instead of QUrl object
Introduce CoverArtImage class and simplify code

- move is_front_image() from metadata.py to class CoverArtImage as it is only used here
Wraps self.album.tagger.xmlws.download() in new _download() method
No need to calculate length of the list to test if empty.
_process_asin_relation(): reduce indentation level
_walk(): reduce indentation level
_fill() -> _fill_from_relationships()
_coverart_downloaded(): better handling of not enough data case

At least log a message in debug mode in this case.
Btw, i'm not sure why this condition was added, even if it makes sense.
Drop useless coverartobj argument, cleanup
Use types intersection to select caa images to download, clarify code

- lowercase types from json, to match lowercased types from options
- fix up logic concerning caa_front_found
- add few comments and debug info
Subclass CoverArtImage and add support_types property

- CaaCoverArtImage is only used for CAA images
- drop host comparaison (vs 'archive.org'), use a much cleaner "flag"
- all current providers but CAA don't support multiple types, so we defaults to a "front" type
- once we have one image from one of those providers we are done
- we don't want to remove all images from CAA having front type
Use an explicit is_front property for CAA front flag indicator
Add image description to debug message if available
Remove useless import
Add types_and_front() helper function

- it converts id3 type to CAA-like type list
- it returns a is_front boolean, emulating CAA flag
Improve handling of multiple image types and is_front flag

- convert type-as-a-string to list of types
- display concatenated list of types in messages (ie. back,spine)
- pass is_front flag everywhere needed
- pass list of types instead of single string everywhere needed
- introduce maintype() method to get the first type if more than one is set
- in formats/*, use types_and_front() at read time to get properly formatted list of types (only one element for now, since no format seems to support multiple types)
- use Image.maintype() at write time (since no format supports multiple types for now)
Improve debug messages
Modify how we skip unneeded front images from non-CAA sources

Instead of looping and modify the try list, just check in _walk()
and continue.
Improve debugging messages (no more silent removal in debug mode).
try_list -> queue + fix up few comments