Add almost literal port from node-semver js source
Fix some failing tests
Fix all tests
Move port from node-semver
Update external API to new port
Fixing the base tests