Unit test - more strict format string

Changes:

* hex digit character class
* more strict rfc4122 compliance for variant
Fixed variants to be spec compliant

This fixes the code to be spec-compliant. Specifically:

* reserved NCS variant must have bit 7 cleared
* reserved RFC 4122 must have bit 7 set and bit 6 cleared
* reserved microsoft must have bits 6 and 7 set and bit 6 cleared

The code happened to be doing exactly the opposite. There might be a more elegant way of doing this though.

http://www.ietf.org/rfc/rfc4122.txt