Add ~x.y.z and ^x.y.z parsing

I don't think this needs addressed in this PR, but bummer to link to NPM for info. We should have information on Cargo's site.