Force lazy-connect to make link even if not ideal

It first checks by matching type and an empty socket, then only if empty
socket, then ignores whether the socket is connected or not and matches
by type again, then if it still fails to find anything, connect to the
first possible one (no need to have this last one in a loop, but just in
case - it'll break out the loop on the first run anyways)