Clean up how ports are handled:

 - Vastly simplify allocating ports
 - Error page when we run out of ports.