move utf8 functions from libudev-private.h to utf8.h

There's now some more obvious overlap amongst the two utf8 validation
functions, but no more than there already was previously.

This also adds some menial tests for anyone who wants to do more
merging of these two in the future.
Use udev_encode_string in fstab_node_to_udev_node

Resolves a longstanding bug which caused this function to wrongly
handle (escape) valid utf8 characters.