Update and stabilize SemVer

http://discuss.rust-lang.org/t/stabilizing-semver/376/18 got a lot of discussion, but kinda died out.

What do you think?
Could this move to `Version::parse` instead of being a top-level function? (like `VersionReq`)