Rewrote IdentifierLock

Added deadlock detection
Added deadlock detection between managers
Added lock disposal
Refactored lock disposal
[ProcessManager] Using struct for correlation
Updated references to new lock manager
Removed old identifier lock
Code cleanup

Added documentation
Split out disposable lock
Merge branch 'develop' of github.com:ianunruh/synapse into develop