move Distance class to hooks module
finish removing setUp from DistanceTest

I had to do this for the tests that use the config, so I thought I might as
well finish the job.
replace Distance.sorted() with .items()

This is an effort to make the distance object feel slightly more dict-like.
The name changed and order of tuples is reversed: we now yield (key, value)
instead of (value, key), which I think is a little more intuitive.
move track length params out of weights section

These aren't really weights, so I'm moving them out of "distance_weights".
add keys() method to Distance
parameter name change
documentation enhancements for new config opts
don't duplicate penalty names in max_rec section

This is for maintanability: in the future, when we add new distance penalty
components, now we won't have to list them twice in the default config.
scrub: handle IOError

Mutagen can raise this error when trying to truncate a file.
lyrics: google backend should turn up more results

bs4 scraping routine has been made more generic,
relying less on specific markup tags.
Better algorithm to detect which url titles match
song titles: domain names are now removed from url
titles.
Use regex to decimate \n in fetched lyrics.
Merge branch 'master' of https://github.com/sampsyo/beets