test_art: add unit test

the test checks that the keyword priority (related to its
position in the keywords list) is considered when selecting
image filename amongst several candidates
sort image names before checking for matches

images that contain substring that comes first in the cover_names
option list are prioritized
lastgenre: remove duplicate genres
flake8ness
Importer: save progress for skipped tasks

Save progress and history for import tasks that are skipped by the user, so they are recorded for import resuming and incremental importing.
Fix issue #844
the bucket plugin transforms a pattern like 'A - D' into something that
matches all letters starting with A to D (upper and lower case). This
change allows to put more artists into that bucket. E.g. artists
starting with ä or Ä and 0 to 9 and … (three dots)

Example config for overriding a bucket pattern:

  bucket:
     bucket_alpha: ['A - D', 'E - L', 'M - R', 'S - Z']
     bucket_alpha_regex:
       'A - D': ^[0-9a-dA-D…äÄ]
A few artists use three digits, e.g. 112 or 209. They are detected as a
year instead of an artist. Improve the heuristic by only allowing four
digits to be a year.
Discard matches without required tags

Skip a match that doesn't have any of the config-defined tags I want to enforce.
required list
Changelog for #732
Merge pull request #846 from KraYmer/issue836

Cover images prioritization
Merge branch 'master' of github.com:sampsyo/beets
Changelog & style for #846 (fix #836)
Merge pull request #847 from KraYmer/issue805

lastgenre: remove duplicate genres
Changelog for #847 (fix #805)
Merge branch 'jcassette-importer-save-skipped'
Changelog for #850 (fix #844)
Merge branch 'sotho-master'
Changelog for #851 (bucket improvements)
Added unit test for Library unicode filenames #833