Constrain version to 3 bits

Introduce Word3 type to represent 0-7, used for version number.

Implement previously missing support for extension bit.
Move QuickCheck property to be top level function