Try to define an ordering for versions

Other parts of the spec refer to things such as "later versions". For
any of that to make any sense, we need a well defined order.

Also, this adds the concept of an epoch to help us cope with versioning
mistakes, version scheme changes, and silly mod author versioning
schemes.

This is almost completely stolen from the Debian software policy, which
certain debian-specific and complicated bits removed.