fix interface to ID matching

As outlined in #299, we broke many places in the code that were expecting
_album_for_id and _track_for_id to return a single item rather than a list. I
took this opportunity to divide up the interface: there's now one function for
MBIDs (returning a single object or None) and one for generic IDs (returning a
list).
zero: fix nulling fields containing None
merge
changelog/thanks for ALAC (#295)
add tests for ALAC (#295)