Add Parser::Version

Rather than using Fixnum primitives this change adds a Parser::Version
object that defines predicates to steer control flow based on ruby
version. Additional predicates and version comparison operators can be
maintained centralized.
Use modern minitest from rubygems

The minitest shipped with ruby does not have all assertions.
Add tests vor Parser::Version
Make Parser::Version#inspect idempotent