Removes the use of annotations, switches to test prefix naming

Introduces interfaces to specify which tests should be implemented for the different *Verification classes, which makes it much easier to keep track that test cases have been properly implemented.

*IMPORTANT* Fixes #188 by making the 2.12 rule "unverified" in the TCK as it is not reasonably testable.

Removes the annotations that were used for TCK documentation, since they were confusing and not up to date. Replaces them with prefix naming. ("optional"/"required"/"unverified"/"stochastic")
I wanted to visually separate it from the rest very clearly and didn't feel like 2 underscores was enough. If we change it I think the only alternative is to 1 underscore, but I am open to any and all suggestions!