Fixes to properly conform to the UUID standar for version 3, 4 and 5.

* varient bits and type is now set correctly
* varient bits and varient type can now be retrieved more efficiently
* new tests added for variant setting
* new tests added to confirm proper version setting
* type UUID now conforms to the BinaryMarshaller and BinaryUnmarshaller interfaces
* New was added to create a base UUID from a []byte
* ParseHex was renamed to simply Parse
* Parse creates a UUID and properly checks the string format
* NewHex now performs unsafe creation of UUID from a hex string
* NewV3 and NewV5 now take strings as a namespace name