Bug #911 reimport detection for the `importadded` plugin

Reimports are now detected by inspecting the fields for reimported items
and replaced albums in ImportTask.

Reimported albums and items are skipped.
Comply with PEP8.
tox: add bs4 dependency 

bs4 is required by few test_lyrics.py tests
revert 0f5c2a4
add bs4 dependency

and reorder reps list alphabetically for readability
test_lyrics: add onelyrics.net source
lyrics: strip title excerpt before matching

improve the extraction of lyrics title from url title and increase the
matching threshold as a consequence.
add test to check lyrics title match in url title
fix building of lyrics file paths
fix flake8
lastgenre: add unit tests
lastgenre: use an ordinary Item instead of a Mock
fix flake8
Merge pull request #993 from KraYmer/lastgenre_coverage

Lastgenre coverage (mocking galore)
return no lyrics when HtmlParseError occured
skip test involving bs4 if python version too low
Add a displayable_path call in embedart (fix #995)
replaygain: More descriptive backend errors

This avoids a bare `except:` to catch specific errors and give better messages
when they fail. Should provide more insight to this trouble:
https://groups.google.com/d/msg/beets-users/6d-TOg0SuPY/iL39tmo3rqUJ

Also related to #874.

Feedback from @yevgenybezman or others more familiar with the backend would be
welcome.
Merge pull request #992 from KraYmer/lyrics-coverage

Improve lyrics coverage
Trivial typo fix