compatibleWith(): implement toString() and use to parse ^
parse 'any' as VersionConstraint.any
Move matchCompatibleWith() out of while loop
Don't use regex to parse ^
Don't special case 0.0.x for ^