Use a shared thread pool for emulated clients.

Previously, a thread was being created for each emulated client. With the
think time, these threads are idle most of the time. This change avoids
creating a thread for each emulated client and uses a smaller pool (by
default 1/10 of the clients).

The number of clients is still used as the maximum number of threads and
is likely to be used when think/keying time is disabled.
Use numpy for statistics, instead of statlib which is abandon-ware.
Use the same default size for thread and connection pools.

The thread pool can still grow up the maximum number of clients, if a connection
pool is not being used.