Get version from manifest / Set genre by string

1. The version is written to the JAR manifest during packaging. We can get is
from there with `Package.getImplementationVersion()`, so we do not need to adjust the hardcoded `Version.VERSION` string manually before making a release.
Obviously, this will only work if the classes are loaded from the JAR. Otherwise (e.g. within IDE), the version will be undefined (`UNKNOWN-SNAPSHOT`), which I think is fine.

2. Rewrote most of the genre-related code in `AbstractID3v2Tag`. Existing behavior should **not** have changed. The new `ID3v2.setGenreDescription(String)` method can be used to set the genre from a string. This method behaves different depending on the ID3 version:

- Prior to ID3v2.4, the provided text must match a id3v1 genre description.
- With ID3v2.4, the genre is written as free text.