nmci/ip: rework nmci.ip.link_show_all() to not use JSON and fix binary=True

Interface names might not be valid UTF-8. But JSON strings must be
UTF-8. iproute2 will just return invalid JSON in the case where the
interface name is not a unicode name.

We need nmci.ip to work properly also in case where we have unexpected
interface names. For that reason, there was already a fallback path that
tired to parse the text output, and not use JSON.

If we already have a non-JSON variant that MUST work, there is no point
in keeping the JSON code. Drop it and always do our manual parsing.

This also fixes the "binary=True" argument, which is supposed to return
the interface name as bytes.
Status Name Job ID Coverage
  Test
manual TestResults #13734383
manual
passed UnitTests #13734382

00:01:14

 
  External
failed https://desktopqe-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/beaker-NetworkManager-gitlab-trigger-test-upstream/1890/

failed https://desktopqe-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/beaker-NetworkManager-gitlab-trigger-test-upstream/1891/

failed https://desktopqe-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/beaker-NetworkManager-gitlab-trigger-test-upstream/1899/

running https://jenkins-networkmanager.apps.ocp.ci.centos.org/job/NetworkManager-test-mr/713/

1754:00:29

failed https://desktopqe-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/beaker-NetworkManager-gitlab-trigger-test-upstream/1890/

06:13:45

failed https://desktopqe-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/beaker-NetworkManager-gitlab-trigger-test-upstream/1891/

06:33:28

failed https://desktopqe-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/beaker-NetworkManager-gitlab-trigger-test-upstream/1899/

04:34:31