Support non-ASCII string descriptors in lsusb

This replaces the `get_string` function with `get_dev_string`, which
obtains the string descriptor in raw UTF-16 and attempts to iconv
it to the current locale's encoding. If that fails, or if the system
lacks the required functions, it falls back to ASCII.