Save ioctl number in ioctl_tree

We need this for ioctls which are defined as ranges/patterns, such as
EVIOCGABS(abs).
Add support for EVIOCGABS(abs) and ioctl ranges

EVIOCGABS(abs) is not a constant ioctl ID, but takes an argument which resolves
into an _IOC_NR range.
Add support for EVIOCGBIT(ev,len) and variable-length ioctls

This works for any I_NAMED_SIMPLE_STRUCT_IN ioctl; the constructors will adjust
the ioctl ID's length according to the actual data length.