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?
My biggest reason for importing it was that it's strange to work on stuff that's supposed to be in semver in cargo instead. I think it's much cleaner for Cargo to just depend on SemVer, and for the development to continue here, rather than there.

(`^` and `~` work the same way as in Ruby/node: https://www.npmjs.org/doc/misc/semver.html )