tc: add qdisc parsing for some hfsc, ingress, pfifo_fast, etc

This patch adds qdisc parsing capabilities to vdsm/network/tc.py which
will aid in adding QoS configuring and reporting support. The queuing
disciplines that can be parsed completely are:
    - fq_codel,
    - hfsc,
    - ingress,
    - pfifo_fast,
    - sfq

For an qdisc data like:

    qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
    qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
    qdisc drr 1: dev eth2 root refcnt 2
    qdisc tbf 10: dev eth2 parent 1:10 rate 32000Kbit burst 64Kb lat 4295.0s
    qdisc tbf 20: dev eth2 parent 1:20 rate 3200Kbit burst 100Kb lat 4294.7s
    qdisc tbf 30: dev eth2 parent 1:30 rate 800000Kbit burst 100Kb lat 4295.0s
    qdisc ingress ffff: dev eth2 parent ffff:fff1 ----------------

it would return the following dicts:

    {'kind': 'pfifo_fast', 'handle': '0:', 'pfifo_fast': {'priomap': [1, 2, 2,
     2, 1, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1]}, 'refcnt': '2', 'dev': 'eth0',
     'root': True}
    {'kind': 'pfifo_fast', 'handle': '0:', 'pfifo_fast': {'priomap': [1, 2, 2,
     2, 1, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1]}, 'refcnt': '2', 'dev': 'eth1',
     'root': True}
    {'root': True, 'kind': 'drr', 'handle': '1:', 'refcnt': '2', 'dev': 'eth2'}
    {'kind': 'tbf', 'handle': '10:', 'parent': '1:10', 'dev': 'eth2'}
    {'kind': 'tbf', 'handle': '20:', 'parent': '1:20', 'dev': 'eth2'}
    {'kind': 'tbf', 'handle': '30:', 'parent': '1:30', 'dev': 'eth2'}
    {'kind': 'ingress', 'handle': 'ffff:', 'parent': 'ffff:fff1',
     'dev': 'eth2'}

Note that there is some basic information reported for unsupported
qdisc classes (like tbf and drr).

Change-Id: I039dc7594a261ccb32f78c0b050b28fecac417ee
Signed-off-by: Antoni S. Puimedon <asegurap@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/30048
Reviewed-by: Dan Kenigsberg <danken@redhat.com>