Adds check to ensure Json values are actually iterable before iterating.

This implicit cast without this check caused a segfault in many targets on Windows.
Revert "Adds check to ensure Json values are actually iterable before iterating."

This reverts commit f9c9cf47b8538ce0e24f27382dc0055df6e233c7.
Added basic comparisons through satisfies()
Fixed incorrect test.
Added ability to compare SemVers.
Removed uneeded logic
Renamed some variables for clarity
Added more tests
Seperate SemVers from constraints
Removes the concept of unspecific SemVers and eliminates the
 potentially confusing abilty to create constraints in multiple ways