Major bug fixes: data races and memory leaks.

I used Valgrind to find memory leaks, data races, lock
contentions, etc. Here are the bugs that were fixed:

- Fixed various memory leaks and data races in ThreadPool, which was
  causing the invalid memory accesses and unpredictable crashes.
- Fixed emory leak in the use of getaddrinfo().
- Added more error messages to the server.
- Fixed the calls to ReleaseWriteLock() in storage_engine.h only if
  it was previously acquired.
- Increased timeout in test client.
- Added virtual destructor to the SharedMmappedByteArray class to
  prevent memory leaks due to slicing.
- Fixed issues with uninitialized attributes in HSTableManager.