Make Librarian::Manifest Semver 2.0.0 compatible

Semver metadata cannot be parsed by Gem::Version and causes
and exception at runtime on modules which include it.

This metadata is part of Semver 2.0.0 (http://semver.org/spec/v2.0.0.html)

- Added Semver 2.0.0 support to Librarian::Manifest::Version
- Relaxed constraints to support 2-number versions (ie: 1.0)
- Added specs to test conditions mentioned in semver spec
Refactor semver support to match up-stream patch to libraian gem
Merge branch 'semver-support' of https://github.com/justenwalker/librarian-puppet into justenwalker-semver-support