Add Version.nextBreaking and "^" operator

Done.

The original thinking was to provide better error messages for e.g. `>=1.2.3 ^2.0.0`, but I don't think that's a common mistake, and the existing error message is already pretty good.