Add JavaWriter.type(Class,String...) helper method to build generic types

This is heavily inspired by Dagger's `CodeGen.parameterizedType` but it:

 * allows non-generic types: `String.class.getCanonicalName()` can be written as `type(String.class)`
 * checks the number of arguments matches the number of type parameters for the class

Also fixes `emitAnnotation(Class,…)` wrt nested annotation types, and tests `compressType` with bounded-wildcard type arguments.