Generate Annotations for non primitive arrays

This fixes a bug where annotation fields which were specified as arrays of non primitives would result in an illegal argument exception.
This was caused by the non recursive nature of #visitAnnotationFields in CodegenUtils.