add `empty_port_multi` to get a set of distinct empty ports

Calling "empty_port" repeatedly does not guarantee you get different
ports each time, which is a problem if you need a few ports you're going
to listen on later. It's not always feasible to guarantee the correct
interleaving of calls to empty_port with socket creation, so we need a
way to get a bunch of open ports.