Allow ioctl definitions to set a custom size

Legacy ioctls such as TCGETS don't have an argument size encoded in the ioctl
number, so these need to specify a size manually. Add a "real_size" field to
ioctl_type, and add ioctl definition macros for specifying an explicit size.
Do not overwrite an existing $LD_PRELOAD in umockdev-run and umockdev-record.
Add "make check-valgrind" target to debug memory leaks
Add recently added API to reference documentation
Add missing documentation

Add gtk-doc docstrings for all symbols.
Run gtk-doc check in test suite

This will point out undocumented symbols right away, to avoid releasing with
missing documentation.