Stop spinning threads up for every connection

This changes DatTCP to be more efficient and not spin a thread up
for every connection. Instead it will spin up threads (to a
maximum) and leave them going to continue processing connections.
This is more efficient and keeps us from continually creating
threads. This, plus removing any 'serving' logging (even null
logging), made the server faster and smoother.

* The `WorkerPool` no longer 'processes' connections. It adds
  them to it's queue and signals any workers who are waiting.
* Workers are spawned and, if no connections are queued up, they
  become idle waiting. Once a connection is added, they will
  pick it up and serve it.
* If a connection is added and no worker is available to pick it
  up, then a new one will be spawned if the pool hasn't reached
  it's maximum allowed.
* Shutting down a pool will allow any connections that have been
  picked up by a worker to finish processing. Connections on the
  queue will not be served.