Feature/keep annotations

the goal was to have the generated classes keep annotations that were on the original abstract classes. this way you could use the generated code with Jackson easily, using annotations like `@JsonProperty("myProp")` and having them just work.

i added a new property to the `Property` class that lists the annotations, and using the velocity template to add them to the get methods.

this pull request contains the temporary fix for the breaking test, so i expect to rebase/fix it before actually getting merged in.
I think this might be related to the test compilation problems. Truth has moved and the new location would have import static com.google.truth.Truth.assert_ here.