1. Protect DescriptorPool::BuildFile in ProtobufReader using mutex
2. Protect boost::uuids::random_generator in DbHandler using mutex
3. Copy over the errors from SocketStats to SocketIOStats

Added tests for the following in DbHandler:
1. Tests that show boost::uuids::random_generator is not thread-safe.
   This test is disabled since it fails as expected with duplicate
   uuids being returned.
2. Test that shows creating a boost::uuids::random_generator on stack
   is an order of magnitude expensive than not doing so or
   multi-threaded mutex lock based approach.

Change-Id: I22326c132ff733005312722461a0c5e831fbb964
Merge "1. Protect DescriptorPool::BuildFile in ProtobufReader using mutex 2. Protect boost::uuids::random_generator in DbHandler using mutex 3. Copy over the errors from SocketStats to SocketIOStats"