Refactor VersionParser to handle illegal inputs
Implement fluent interface for Version.Builder