This allows the caller to tweak how Lofty writes their tags in various ways.
As this is just a dumping ground for all sorts of format-specific settings, this is best used as an application global config that gets set once.
In its current state, it will only respect `uppercase_id3v2_chunk` and `preferred_padding` (for some formats).
`respect_read_only` and `remove_others` are defined for later use.
closes#228
This is the start of making Lofty more general purpose, allowing for the creation of custom tags.
This also makes `TagType::remove_from*` fallible, which makes much more sense.