Add support for virtual IPoIB interfaces & partition keys

Virtual IPoIB is similar to macvlan, but uses the ipoib type instead of the macvlan type when calling the ip command.

Also supported are partition keys which are the infiniband equivalent of a VLAN.

The benefit of this are that there is no longer a need to use SR-IOV and ib0 remains visible in the host.  We can simply create as many containers as required and pass ib0 through with pipework.  Under the hood it creates ib0.dockerpid or for the pkey version ib0.pkey.dockerpid.