Fix the SuperficialValidator to properly handle upstream impact on AnnotationValues

Fix the SuperficialValidator to properly handle upstream compilation problems resulting in unreasonable AnnotationValues (specifically  "<any>" and "<error>" strings appearing instead of real values where there are missing imports or other upstream compilation issues).  Migrate isTypeOf from Dagger to perform the key test (i.e. is there a sane match between the expected annotation value type and the type returned by the processor environment)

-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=75599279
Doing this with a visitor seems like overkill. I think it would be simpler and clearer to write:
  if (maybeArrayType.getKind() == TypeKind.ARRAY) {
    return (ArrayType) maybeArrayType;
  } else {
    throw new IllegalArgumentException(maybeArrayType + " does not represent an array type");
  }
which you could obviously generalize into a method that is called instead of CastingTypeVisitor.