Delegate album_for_id to plugins if no MusicBrainz match is found
Add support for manually entered release ID in Discogs
Determine IDs from MusicBrainz and Discogs URLs
Fix tests for albums from manual ID
Look at many more metadata fields when calculating distance.

Produce slightly more varied similarity score to prioritise extremely
similar releases.
Merge pull request #292 from mrmachine/improved-distance

Look at many more metadata fields when calculating distance.
simplify current_metadata return value

We now just return the underlying dicts instead of an increasingly long tuple.
avoid loading config at import time

By running .get() (or, rather, .as_number()) in the module scope, this was
forcing the configuration to be materialized when the module was imported.
This is a little bit messier but requires a less duplication and avoids that
early loading problem.

I know the as_number calls scattered throughout are rather ugly; I'm pondering
a solution to mitigate that.
discogs: penalty only for matches from discogs

Otherwise, this was penalizing all album matches.

This also applies the same treatment as the previous commit: only load the
config at run time (at the expense of code clutter).
fix some docs syntax
back out source-sensitive sorting

This is now addressed by a distance penalty.
refinements to artpath modification patch

That's 371cc72f2d09 in hg. This makes the patch slightly more general by
reusing our type conversion infrastructure. It also uses "bytes" as a synonym
for "str" that I find a little bit clearer.
discogs: move config default into constructor

Such is the new convention for plugin configuratino defaults.
fix some dumb mistakes from most recent flurry
distinguish Album and Item template fields

An earlier change (due to @pedros) added the ability for plugins to define
template fields that work with Albums as well as Items. This enables some
cool new use cases but required that every template field definition check the
type of its arguments. Instead, this iteration on the idea distinguishes
between fields meant for Items and those meant for Albums.

In addition to simplifying the implementation of these functions, this also
enables the creation of album fields with identical names to item fields.
(For example, a user contacted me recently about adding a $bitrate field for
albums, which would be the average bitrate of the items. They can do this now
using a plugin.)

I also changed the docs to stop using the decorator approach to registering
template fields. We're moving toward removing those.
inline: allow album field definitions

Under the album_field heading.
inline: rename "pathfields" to "item_fields"
fix for undefined TRACK_LENGTH_GRACE

Thanks for catching this, @mrmachine.
Return a list of candidates in hooks._album_for_id
Improve regular expression for Discogs IDs