Tried to make lock_guard unlockable, we'll see if it works...
Added start of unit tests

TODO:

1. unit tests for each struct and method in dir_monitor
2. Unit tests for several use cases (1M files, etc)
3. Latches and timers
4. implemnt the general case for dir monitoring.