ioctl-tree: Differ between in and out simple structs

Unfortunately we cannot use _IOC_DIR on an ioctl to determine whether the
passed data will be set by the caller (_IOC_WRITE) or returned by the call
(_IOC_READ), as some ioctls get that wrong. For example, USBDEVFS_CONNECTINFO
is declared as _IOW.

Therefore, we need to specify the direction explicitly. Rename
ioctl_simplestruct_execute() to ioctl_simplestruct_in_execute(), and rename
macro accordingly.

We do not yet have an output ioctl.
Fix test-ioctl-tree.c t_read() test case

Actually call ioctl_tree_read() in the t_read() test case instead of just
writing and reading a static string.