core: VM cleanup

- Reduce the code duplication in the constructors by replacing duplicate
  code with delegations
- Replace direct assignments to fields in the constructors with calls to
  setters (to make the code consistent)
- Fix typo in comment (mechanizm -> mechanism)
- Remove redundant override of hashCode method
- Move comments from private fields to their getters
- Move comment that describe Version structure to Version class

Change-Id: I833e9574d1753e03e6e5b875cbe1d2bc4de50819
Signed-off-by: Arik Hadas <ahadas@redhat.com>