Refactored change package

- @Nonnull annotations
- checkNotNull calls
- final removed
- simplified hashcode, equals, tostring
- added getItem() as generic method to access changed item
- added generic tags

- minor changes in model package