Analyze field and method annotations for main dex list

Analyze annotations on fields and methods, in addion to
ones on the class. Classes containing any annotation
that references an enum should be in the main dex,
as otherwise reflection APIs e.g.
Method.getDeclaredAnnotations() cause runtime failures
on API 19 and below.

Test: updated multidex002 test
BUG=73800636

Change-Id: Ie56da36056b80ed1273b07bdf293046b39fc4126
diff --git a/src/test/examples/multidex002/AnnotatedMethodParameter.java b/src/test/examples/multidex002/AnnotatedMethodParameter.java
new file mode 100644
index 0000000..49a9e6d
--- /dev/null
+++ b/src/test/examples/multidex002/AnnotatedMethodParameter.java
@@ -0,0 +1,11 @@
+// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package multidex002;
+
+public class AnnotatedMethodParameter {
+
+  public void foo(@AnnotationWithEnum3(AnnotationWithEnum3.Value3.VAL3_2) String val) {
+  }
+}