Fix commit confirm
Re-implementation of the commit confirm state mechanic.
Commit-confirm state manager for changes uses channels instead of mutexes now. Also some test coverage improvements.
Types of changes
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to change)
- My code follows the code style of this project.
- My change requires a change to the documentation.
- I have updated the documentation accordingly.
- I have read the CONTRIBUTING document.
- I have added tests to cover my changes.
- All new and existing tests passed.