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")
triple `_` is pushing our naming weirdness to new highs I guess... ;-)
Any reason 2 isn't enough? (*panics seeing non 2^x number ;-)*)