add support for the IVS virtual switch

IVS is an open source virtual switch available for download at
https://github.com/floodlight/ivs. It uses the openvswitch
kernel module.
test_hifi: use SWITCH to pick the switch class
IVSSwitch: add support for dpctl

dpctl is not included with IVS. The user will need to obtain it from the
OpenFlow reference repository.
install.sh: add support for IVS
IVSSwitch: use ovs-ofctl for dpctl functionality
IVSSwitch: remove namespace warnings

IVS works fine using --innamespace.
clean: don't wait forever for ovsdb

This could happen if OVS was installed but not running.
clean: kill ivs processes
tests: run all tests with OVS, IVS, and userspace switches

Each switch gets its own class so that the test results are listed separately.
clean: send SIGTERM before SIGKILL

IVS needs to be sent SIGTERM so it has a chance to clean up the kernel
datapath.
IVSSwitch: support running IVS in a namespace

This change uses the `Node.cmd` method instead of `Popen`. The `cmd` method
sends the input to a shell which may be in another namespace (if --innamespace
is in use), while `Popen` would always run in the root namespace.
Merge branch 'ivs' of https://github.com/rlane/mininet into rlane-ivs

Conflicts:
	util/install.sh

fixes #159