Add support for using AutoValue classes as Pojos and Entities.

Support using AutoValue generated classes as Pojos by processing the
AutoValue_* generated class that contains fields and getter
implementations.

To support the AutoValue api @PrimaryKey and @ColumnInfo have been
opened up to target methods. However, since we only want to allow their
usage in methods to support AutoValue a new processing step was added
that throws an error if it finds a method not implement by AutoValue
with any of these two annotations.

Note that Embedded and Relations are not yet supported.

Bug: 62408420
Test: ./gradlew :room:room-compiler:test \
      :room:integration-tests:testapp:cC \
      :room:integration-tests:autovaluetestapp:cC
Change-Id: Idce0b5934e0aa864117fc95e7d19a7edc2c94f9f
diff --git a/settings.gradle b/settings.gradle
index ee87373..5bad716 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -120,6 +120,7 @@
 includeProject(":recommendation", "recommendation")
 includeProject(":recyclerview", "recyclerview")
 includeProject(":recyclerview-selection", "recyclerview-selection")
+includeProject(":room:integration-tests:autovaluetestapp", "room/integration-tests/autovaluetestapp")
 includeProject(":room:integration-tests:testapp", "room/integration-tests/testapp")
 includeProject(":room:integration-tests:kotlintestapp", "room/integration-tests/kotlintestapp")
 includeProject(":room:room-common", "room/common")