Multiple threads per addr w/ SO_REUSEPORT + separate socks

Note that we're still doing a 1:1 mapping of threads:sockets, but
  now we have a configurable 1:M mapping of addresses:threads.

The only known important case where SO_REUSEPORT doesn't exist/work
  and people would really care is Linux kernels older than 3.9.
  In that case doing multiple threads-per-address some other way
  (shared sockets, or just supporting UDP w/ separate socks and
  REUSEADDR) doesn't actually scale well, so the configurable
  threads-per-address settings are forced down to 1 in the absence
  of a working SO_REUSEPORT for simplicity of implementation.

New global options:
  disable_reuseport: acts as if SO_REUSEPORT compile-/run- time
    detection failed, forcing thread counts to 1.
  udp_threads, tcp_threads -> default to 1 thread per listen-addr
Deprecated global options:
  disable_tcp: deprecated in favor of "tcp_threads = 0"
  tcp_clients_per_socket: renamed (w/ deprecated support of old
    name) to tcp_clients_per_thread.
All of the same changes occured at the per-address options level
  as well.

Would be good to benchmark this in various combinations of
  thread:cpu ratios and udp_recv_width settings on a 3.9+ Linux host.
  If the benefits look good even at the low end, might consider
  defaulting UDP higher than 1 based on system CPU count as well.
Remove disable_reuseport config option

This was leftover from an earlier iteration of the SO_REUSEPORT
  code, but in the current implementation it's pointless, as
  SO_REUSEPORT is used iff it was runtime-detected *and* the user
  has configured more than one thread-per-address.
In the case that some platform has SO_REUSEPORT bugs/behaviors that
  gdnsd didn't anticipate, one can always leave threads at the
  default value of 1 to avoid using it, with the same effect as
  this option.
Log thread counts, fail in various no-listener cases

(also, warns on listeners defined to 0+0 threads)
Merge branch 'reuseport'