core: forwarded port collision repair leases chosen ports [GH-2966]

In addition to checking if a port is open, we now check if a port is
"leased", which we do for a period of 60 seconds. This gives the provider
time to actually put the port into use.