Correctly document thrown exceptions in VersionRange.
Added invalid version range test.
Added helper function VersionRange::setUpperLower

Function accepts a pair of ComparitorVersions and determines the
upper/lower ones automatically.
Added tests for valid VersionRange uses.
Added base exception for library exceptions to inherit from.