'node1, node2: nodes to link together
port1, port2: ports (optional)
opts: link options (optional)
returns: link info key'

def addLink(self, node1, node2, port1=None, port2=None, key=None, **opts):

    if ((not opts) and self.lopts):
        opts = self.lopts
    (port1, port2) = self.addPort(node1, node2, port1, port2)
    opts = dict(opts)
    opts.update(node1=node1, node2=node2, port1=port1, port2=port2)
    self.g.add_edge(node1, node2, key, opts)
    return key
