Add JavaWriter.type(Class,String...) helper method to build generic types.
Rewrite emitAnnotation(Class,...) to use JavaWriter#type()

This should fix the methods when used with nested annotation types (binary
name vs. canonical name).
Add test for compressType with bounded-wildcard generic arguments