Support Java 8 type annotations

The attached code depending on the format of TypeMirror.toString() isn't ideal.  I started down the path of using ((DeclaredType) returnType).getAnnotationMirrors(), which wasn't bad, but then I also needed to deal with ((DeclaredType) returnType).getTypeArguments() and then I started thinking about generic nested types inside of generic types and my head began to spin.
(to myself) I just wonder how many more places where I assumed that `TypeMirror.toString()` would give me the type string suitable to be places literary in the sources