configure heartbeat ThreadPoolExecutor

Hi, 
I've found that almost every time client.getAvaliableServers().size() returns zero, so heartBeatThreadPool is created with Runtime.getRuntime().availableProcessors() thread count, that is unnecessary here. 
We can simply create a pool, where threads will be created when they are needed, and will die when they are not used. If application uses several memcached clients, this will significantly reduce jvm thread count.