Add support for MS type GUID's

Per Wikipedia, 

> A GUID can be stored as a 16-byte (128-bit) number; Microsoft defines a format which is split into four fields,[1] defined as follows. Note that this format differs from the UUID standard [3] only in the byte order of the first 3 fields.
> GUIDs and RFC 4122 UUIDs should be identical when displayed textually

This P/R adds an optional boolean argument to Uuid::fromBytes and Uuid::fromString to specify that we are working with GUID's. The toString() method also gains an optional argument to force output as a big-endian UUID, which is necessary due to getBytes()'s reliance on toString(). 

When a UUID is created with the little endian flag, behavior is changed in that the byte-order is inversed for the first three fields in the binary string returned by getBytes().

This extra behavior is optional and fully backwards compatible.