Improved Model Parsing (with refactors)

## Changes
- Support for JAXB annotations added (`@XmlRootElement`, `@XmlElement`, `@XmlTransient`)
- Support for Jackson annotations added (`@JsonRootName`, `@JsonProperty`, `@JsonIgnore`)
- A new conflict resolution has been added to model name generators, so models with the same name in the same resource (we had one like that) won't get overriden.
- There is now a `HISTORY.md` to track (but largely incomplete...)

## Refactors
- The parser and translation (giving names to objects based on types, variable names, annotations) code have been refactored. This will hopefully allow for a more throughout test coverage on the long run.
- Most of the code from the original class is reused however, just restructured to different classes, but this *does* mean that it looks like *everything* has changed.

## Notes
I realise this pull request is a long shot because it changes so much code that it's basically doing more than one thing. Please let me know if you would need me to do some additional work (eg. splitting this up, or to clarify things).