Added threadsafe_queue class
Updated threadsafe_queue.h to match listing 6.3
Producer/consumer threads in place
Removed functions wait_and_pop/try_pop functions that don't use shared_ptr, because I usually use this threadsafe queue in a producer/consumer pattern where the producer inserts nullptr to signal to the consumer to stop, and this pattern is only compatible with poping shared pointers
Adding hdf5 to make file