Pull the code to add an address-less Linux interface into a routine.

The code to scan /sys/class/net and the code to scan /proc/net/dev had
common code to, when they found an interface, add it to the interface
list; pull that code into a common routine.
Fix/update some comments.
Pull the code to get an interface description into a separate routine().
Don't treat all open errors as reasons not to list an interface.

Only treat "the capture mechanism doesn't know about this device" and
"you can't capture on the interface because it isn't up" as reasons not
to list it, as there's no point in showing those interfaces to users.
For all other reasons, show it to the user, so they can try to capture
on it and then find out why it doesn't work (e.g., you're not running
with sufficient permissions).
Merge remote-tracking branch 'upstream/master'