Add Version.nextBreaking and "^" operator

This isn't quite accurate. We don't treat `0.0.x` any different than `0.x.y`; the next breaking version after `0.0.3` is `0.1.0`.