Utils: Add a few more require methods, with error messages.
Version: Add requires.
Utils: Drop unused require.
Version: Add hashCode & equals to Version (fuck my terse code).
GitVersionGetter: Add optional 'v' to semVerPattern & add a grouping to extract clean name.
test: Add an initial (1 test) GitVersionGetterTest.