Model formatting: Refactor and fix precedence

1. Moves all formatting related code from the model into a separate class.
2. Item values take precedence over album values except for paths. Fixes #858.
Great idea; "overloading" this flag to mean both behaviors will work well.