capsicum: make rights a structure

First pass at making Capsicum rights a structure, analogously to
FreeBSD10.x

The number of distinct rights has become too large to fit in
a single u64, so use struct cap_rights to hold an array of
the possible rights.

The bit values inside this array have a particular internal structure
as described in the include/uapi/linux/capsicum.h header file.  This
is used for consistency with FreeBSD10.x.

Within kernel code, use struct cap_rights rather than the userspace
cap_rights_t typedef, in line with the general preference for avoiding
typedefs.

If CONFIG_SECURITY_CAPSICUM is not defined, the various rights
manipulation functions just expand to &rights, so the additional
cost is an extra local variable, plus the overhead of passing its
address to the various fget()-like functions.