Refactor model formatting

Remove all formatting related code from models. It now lives in the
`FormattedMapping` class. Only API change is from `model.formatted` to
`model.formatted()`.
Item fields take precedence over Album fields in formatting

For consistency, this is reversed when formatting paths. Fixes #858.
Changelog for #917/#855
Changelog for #878
Merge pull request #918 from geigerzaehler/formatting

Model formatting: Refactor and fix precedence
Changelog for #858/#918