Make emulated /dev/ nodes appear as block/char devices

When stat()ed, our emulated device nodes should appear as actual block or
character device nodes instead of regular files. To tell them apart, we (ab)use
the sticky bit on the emulated /dev node to indicate a block device, as it has
no other use anyway.

https://github.com/martinpitt/umockdev/issues/16
Make emulated /dev nodes have proper major/minor numbers

We get them from the "dev" attribute and put them into symlinks
<root>/dev/.node/name_with_slashes_replaced -> major:minor

https://github.com/martinpitt/umockdev/issues/16
Create /sys/dev links

This makes g_udev_client_query_by_device_file(), udev_device_new_from_devnum()
and related functions work properly, which need to resolve a major/minor into a
sysfs path.

https://github.com/martinpitt/umockdev/issues/16