Better support for version constraints.

Each version requirement stores a maximum and minimum version.  Version
compatibility is determined between two version requirements if there is
overlap between their min and max versions.
Merge pull request #13 from RSEmail/better-version-constraints

Better support for version constraints.