Change test-requirements to specify minima

pip freeze outputs a list of specific versions. We really only
have a minimum version requirement for most of the test tools.

Therefore, change all specifiers from '==' to '>='
Add semantic-version as a requirement

Been reinventing the wheel again. This will help simplify the
site version number handling and, later, versioning of cmomands
and options.
Switch to using semantic versions in Site class

Using the semantic-version module vastly simplifies site version
checking. It will also enable sophisticated versioning of commands
and options.

- Change the Site.version property to return a Version instance.
- Replace the version_at_least method with version_in whic takes
  a string argument describing the range of versions to be checked.
- Rewrite the unit tests
- Modify the example program to use the new API.