netlink: thread names
add support for netem qdisc and fw filter

Limited support yet, not all options are supported
netem only supports loss, delay
docs: add a docstring to `Dotkeys` class
iproute: support callbacks on a message arrival

Bug-Url: https://github.com/svinota/pyroute2/issues/14
[netem] add corruption,reorder and correlation features
Merge pull request #17 from chantra/pyroute2_netem

merge netem code from @chantra
netem: pep8 fix
Merge pull request #1 from svinota/netem

master rebase and pep8 fix for netem branch
[netem] sanity checks the arguments

Also add scripts/sample_packet_04.data that contains the message
sent over the link when running:
tc qdisc add dev eth1 handle 8002: parent 1:2 netem limit 1000 delay 50.0ms  51.0ms 50% loss 2% 50% reorder 25% 0.5% corrupt 25% 5% gap 1
[fw] only defined options are set, make get_fw_parameter generic
Merge pull request #18 from chantra/pyroute2_netem

netem implementation
ipdb: transaction callbacks

Transaction callbacks can be used, e.g., to check the environment after the
transaction is applied, but before it is commited. You can check, if the
network is reachable after the changes, and if not — the callback exception
cause whole transaction to be rolled back.

Also, unit tests added.
[tc] Allow deleting root qdisc

ipr.tc(RTM_DELQDISC, None, ethid, 0, parent=TC_H_ROOT)
provide the same functionality as:
tc qdisc del dev eth0 root

IPRoute.tc method should account for an undefined TC_KIND. This allows
deleting the root QDisc
Merge pull request #19 from chantra/del_root_qdisc

[tc] Allow deleting root qdisc
version 0.1.12
ipdb: accept custom Interface class in IPDB
iproute2: guess the family in `addr()` call
ipdb: ignore IPv6 link-local addresses
ipdb: do not raise RuntimeError for «Operation not permitted»

Since it is not permitted both, for the transaction and for the rollback part
ipdb: remove flags from empty transaction

iproute: treat flags and mask == None as 0
tests: update review test (flags removed)