modified Property to keep basic annotations.
added ability to keep values inside an annotation.
moved tests to a separate file, added more test cases.
switched to using `TypeSimplifyer` to get annotation name.
fixed indentation of annotations in template.
refactored annotation tests to minimize duplicate code.
added tests to cover basic single value annotations.
added tests for array-based annotation values.
cleaned up names and combined statements.
switched to `ImmutableList` throughout. changed `Iterable` for `List`, since order matters.
added comment explaining `TestEnum.toString()` override.
added test for nested annotations.
cleaned up the constants to keep the tests more readable.
switched to new `truth` packages. added `<?>` to class definitions.
Merge pull request #127 from jmcampanini/feature/keep-annotations

@AutoValue: copy annotations from abstract property methods to their implementations in the generated class.