Support kuid_t/kgid_t types for Linux 3.8+

When CONFIG_UIDGID_STRICT_TYPE_CHECKS is enabled kuid_t becomes a
structure (to be treated as an opaque data type) rather than a new
name for the integer-type of uid_t. Similar for gid_t.

The User Namespaces option introduced as working as Linux 3.8 requires
this option to be enabled so we now support compiling with this option.
This is implemented by checking for the kuid_t type and #define the
existing uid_t/gid_t to the k-versions.