implement a union to pad out file_handle

Cases where name_to_handle_at is used allocated the full struct to be
MAX_HANDLE_SZ, and assigned this size to handle_bytes. This is wrong
since handle_bytes should describe the length of the flexible array
member and not the whole struct.

Define a union type which includes sufficient padding to allow
assignment of MAX_HANDLE_SZ to be correct.

Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
util: make sure all our name_to_handle_at() code makes use of file_handle_union

Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
udev: warn when name_to_handle_at is not implemented

We have a bunch of reports from people who have a custom kernel and
are confused why udev is not running. Issue a warning on
error. Barring an error in the code, the only error that is possible
is ENOSYS.

https://bugzilla.redhat.com/show_bug.cgi?id=1072966