Autotune the Pool... Autotune the pool... everything is better - autotuned...

Major changes in a lot of places.... after playing with a lot of approaches for having the pool size adjust automagically, the best I found was to start the pool, resizing each read() interval with a fibonacci sequence feeding the pool size, taking data points from those iterations and doing a weighted least-squares estimation to come up with a quadratic parabola function predicting what size pool will produce the lowest average latency for collecting metrics.

This pull fixes #7 and fully addresses #5 while introducing internal metric collection and maximum threads settings.