Add support for re-importing added dates.

When re-importing, `item.added` and `album.added` will be preserved if
their path match what they are replacing.
Replace album query with Item.get_album()
Add support for reimporting flexible attributes.

Move the reimport and replaced item logic into separate methods:

* ImportTask.record_replaced()
* ImportTask.remove_replaced()
* ImportTask.reimport_metadata()
Remove unnecessary database queries during reimport.
Fix for import and reimport of singleton items.
Comply with PEP8.
Merge branch 'master' into reimport-metadata

Conflicts:
	beets/importer.py
Standardize docstring style
Modernize logging

Unicode strings, .format() templating, and displayable_path sanitation. Really
makes me wish for automatic formatting stuff in the logger...
Basic re-import tests
Re-import test: check item-level data preserved
Test singleton re-imports
Fix "X of Y items replaced" log message

This was erroneous before: it always said "N of N" due to the presence of
empty lists.
Re-import tests: stub out *_for_id functions

Currently, these just return no results. (For our testing purposes, the
matches we get from the ordinary metadata search suffice just fine.)
Changelog for #984

[ci skip]
Merge pull request #984 from sampsyo/reimport-metadata

Re-imports: preserve added dates and flexible attributes