Remove dependency on annotation classes

By using `AnnotationMirror` instead of the annotation classes directly,
we can lower down the Java requirements to Java 8.
8 files changed