handling leaks

client::ptr is now shared_ptr<client> instead of client*
using boost::container::vector<client::ptr> instead of client::ptr[]
added a global object to check leaks, because _CrtDumpMemoryLeaks() runs
before the clients are delete'd