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.
Unfortunately, getting indentation right in the output from the template is quite tricky at the moment. Ideally a post-processing pass would fix the indentation, ignoring whatever space is in the template, but that's not there right now. I think you would need to unindent the `${a}`. Velocity deletes everything from a # to the following newline, inclusive, which is why this template uses blank lines a lot. Extra blank lines *are* removed in postprocessing. Without them, the spaces before the `#foreach` will be added to the ones before `${a}` and the ones before `#end` will be added before the `@Override`.