The previous code resulted in errors when parsing items with non-zero flags, and wrote items with non-zero flags incorrectly.
This makes binary items that don't contain UTF-8 format data work correctly. This required some refactoring changes as previously items were checked for UTF-8 validity before the type flag was checked. This adds the ApeTag#has_id3? method for checking for an existing id3 tag. There are other minor changes as well. This updates the test suite to use the files in the test-files folder.