v4

1. Revert `^` behavior to SemVer 2.x.
2. Handle prereleases in less surprising ways.
3. Document desugaring advanced range syntax to simple comparators.
quick justification for the quirky behaviour <1 along might be helpful here to avoid inevitable *"wait, what?"* reactions