SemVer v2.0.0 parser, first pass

Obviously need to add ranges, and update all the tests still.

This is very much a wip.