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.