Add usb_get_port_path() helper function

There is currently no way to uniquely identify USB devices in
libsigrok. It uses the "bus.address" scheme which is only
constant as long as the device remains attached to the bus.
In order to allow USB device persistence in PulseView, devices
need to provide a unique identifier even in absence of a
serial number. This function is the first step as it provides
the ability to query the physical location of a USB device.
Add serial_num and connection_id, clean up sr_dev_inst_new()

Since we want to uniquely identify devices in PulseView, we need
to have more information about the device than just vendor/model/
version. These two fields will be used to allow PV to access the
device's serial number and connection id.

The connection id can be pretty much anything as long as it's a
system-wide unique identifier. It can be a USB port path, an IP
address, a file name or whatever else.