correct requirements of branch and timestamp fields

Branch version is vendor-specific information, so it may also contain
things like "pre2".  According to the spec[1], it is the "vendor branch
version, as a dot sequence".  So, "1.2_3-pre4" would look something like
"1.2.3.pre4"?... ...

Timestamp is an ISO 8601 string in YYYYMMDDThhmmssZ format (where "T"
and "Z" are literal).

If I understand the way the package manager works, neither of these two
fields are used in version comparisons and exist solely for user
enjoyment.

^1 <http://docs.oracle.com/cd/E23824_01/html/821-1474/fmri-5.html>

   SCHEME pkg VERSION 1
bugfix: comparing the wrong way

Compatible is when the major versions are equal and the remaining
components are greater than or equal to the required component, not less
than.
compare build version too

The build version is compared the same way as the component version.  It
could be tested first or last, it doesn't really matter.
regression tests

Some preliminary tests involving the structure of the version specifier
string.