Update to semver 2.0.0

@schisamo

WIP, not ready for merge.

The main changes between semver 2.0.0-rc1 and semver 2.0.0 are
1.  No leading zeros in version numbers or numeric pre-release identifiers.
2.  No empty identifier fields in prerelease versions or build metadata.
3.  Build metadata is explicitly not used to compute precedence.

Known badness:
1.  New tests for equality/comparison are not in the same format as existing tests.
2.  regexes for git-describe and rubygems need to be updated to semver 2.0.0.