Add caret operator

The caret operator has rough semantics "compatible with X". Specifically, it allows any version that is *at least* the specified version, but *less than* the next *major* version.

In other words, `^1.2.3` is equivalent to `>=1.2.3-0 <2.0.0`.
Handle caret for 0.* versions as exact match
Be slightly less strict about 0.* versions
- 0.0.1 still matches exactly
- 0.1.2 matches up to <0.2.0
- updated tests
Update README
Trim caret and tildes globally
more caret tests
v2.1.0