This changes the behavior of validate_args to return the number of command
arguments. The timeout value for "pair" is also validated and the version
number printed.
The memcpy bug is actually a real one-by-off. Since the msg_long struct is
contained in a union of hidpp_message, this does not lead to
write-past-boundaries (but it may read more than intended).
Some fields of version could be uninitialised (when the register query failed).
Explicitly clear the values to make clang happy.