device-nodes: move device node specific code to own file

In the process, rename udev_encode_string which is poorly named
for what it does. It deals specifically with encoding names that
udev creates and has its own rules: utf8 is valid but some ascii
is not  (e.g. path separators), and everything else is simply escaped.
Rename it to encode_devnode_name.

Adopted for eudev: Anthony G. Basile <blueness@gentoo.org>

Signed-off-by: Anthony G. Basile <blueness@gentoo.org>