entities.Link: define __eq__ and __hash__ based on dpid + port_no

was previously hashing on full object which created undesired
effects when, e.g., the port state was modified