allow loading of older versions of ID3v2
strip trailing null bytes
return io.EOF when we reached the end of the tag and there's no
padding
support APIC frame
support MCDI frame
support USLT frame
reject frames with an invalid ID

This is most likely to happen when reading data that isn't actually a
frame.

This can for example happen because MusicMatch doesn't encode the
length of NCON fields correctly and leaves us in the middle of binary
data.
panic when encountering frames we can't read

Panic instead of returning errors because we really want to implement
this before releasing the library.
document behaviour on invalid data
document handling of unsupported frames
add FIXMEs
clarify File.Save() behaviour
make threshold for in-memory buffers configurable
use named return parameters for frameNameToUserFrame
add nomenclature section to doc.go
separate File into actual File and Tag
move encoding functions to own file
restructure encoding handling