Add Parser::Version object

The idea is to centralize version semantics at a centralized point. Also it removes primitive obsession.

I explicitly did not provide `Version#<` and friends. Dislike to add those stuff proactively.

Also the minitest shipped with ruby is rather old and does not ship `refute_predicate` so this PR includes a commit that uses the current minitest release from rubygems.