std: Add some implementation of common traits

- semver::Version is now Eq, Ord, and Hash
- Path is now PartialOrd and Ord
I think it would be eminently sensible for us to define `#[deriving]` like that (modulo explicit discriminants https://github.com/rust-lang/rust/issues/15523): if someone wants to get a super-optimised comparison that isn't necessarily the declaration-order, they can implement the trait manually.