Add popen3 so that dirname doesn't pollute stderr

Previously, when Mobot_dongleGetTTY() failed because no dongle is
plugged in, dirname polluted stderr with its own failure messages. Since
these errors are both expected in this case and reflect
Mobot_dongleGetTTY's implementation details, it would be better if the
child process' stderr is suppressed. Since popen() couldn't do this, I
wrote popen3(), which automatically captures stdin, stdout, and stderr
for the calling process to do stuff with.

In libbarobo's case, it doesn't have anything to do, so it ignores them.
Use sysfs macros I cooked up a while ago
fix typo
Remove NUL-termination in sysfs macros

In the sysfs macros, filenames were piped through the find-xargs-find
pipeline delimited by NUL characters, instead of the default newline.

Old versions of coreutils provide a dirname command which has no -z
flag. Although the current version of the sysfs macros only uses dirname
in the SELECTUP implementation, which libbarobo does not even use, it
seems wise enough to just switch from using NUL delimiters to the
regular newline delimiters, in case similar issues are discovered in the
other shell commands used.