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
Throughout all these doc comments, I think it would read better if there were a comma before "or throws". Otherwise it superficially reads, here for example, "if the TypeMirror represents a primitive array or throws an IAE".