Factored to header only

Moved Mutex and Lock definitions to header files
for the sake of simplicity and lightweight classes.
Added docs and exception specs for the ctors and dtors.
Slight cleanup