This adds two new tests for overly long and otherwise invalidly
formatted strings to the FromString tests.
The most failure case is the acceptance of arbitrarily long hex
strings and truncating the first 32 characters to a UUID.
--- FAIL: TestFromStringLong (0.00s)
uuid_test.go:250: Should return error trying to parse too long string, passed 6ba7b810-9dad-11d1-80b4-00c04fd430c8=
uuid_test.go:250: Should return error trying to parse too long string, passed 6ba7b810-9dad-11d1-80b4-00c04fd430c8}
uuid_test.go:250: Should return error trying to parse too long string, passed 6ba7b810-9dad-11d1-80b4-00c04fd430c800c04fd430c8
--- FAIL: TestFromStringInvalid (0.00s)
uuid_test.go:275: Should return error trying to parse invalid string, passed 6ba7b8109dad11d180b400c04fd430c8
uuid_test.go:275: Should return error trying to parse invalid string, passed 6ba7b8109dad11d180b400c04fd430c86ba7b8109dad11d180b400c04fd430c8
uuid_test.go:275: Should return error trying to parse invalid string, passed 6ba7b810-9dad11d180b400c04fd430c8
uuid_test.go:275: Should return error trying to parse invalid string, passed 6ba7b8109dad-11d180b400c04fd430c8
uuid_test.go:275: Should return error trying to parse invalid string, passed 6ba7b8109dad11d1-80b400c04fd430c8
uuid_test.go:275: Should return error trying to parse invalid string, passed 6ba7b8109dad11d180b4-00c04fd430c8
NullUUID works similarly to NullString from the database/sql package, it represents a UUID that can be NULL, a Valid boolean indicates if the value was NULL or not.