Fixed #19463 -- Add UUIDField

Added UUIDField. Not particularly complicated this one - no custom lookups or anything. Casts all values to `uuid.UUID` instances in python.

TODO:
- [x] More form field tests
- [x] Documentation

Squashed patch should be marked as fixing #19463.
Is there a reason that I'm missing (probably) that the field's length is 36 (and each DB's backend definition is 36, with the exception of postgres, which has the native datatype)?
Removing the dashes (if a string) or calling `.hex` turns the value into 32 chars, which both `uuid.UUID()` and postgres' datatype support as a input format, and both use the dash-inclusive output format.