list_ports: rewrite Linux implementation

It now is an object, supporting the old indexed access too.
USB manufacturer and product strings are read from device.
Purely using sysfs, no longer calling lsusb.

Hiding ttyS* devices with no hardware ID (this should rule out the internal
ports that have device files but no real hardware)
1 file changed