In order to improve sync stability and robustness, we first need to add a new component: the local events queue.
It is a simple queue that will be filled by all events fired by watchdog.
Each event will then be put into the current LocalWatcher queue.
As a first stat, the goal is only to introduce the component, it should not alter the application behavior.
In future tickets, we will improve the "smartness" of that new local events queue.
For the implementation, a base queue will be created. And that base queue will be subclassed for the local events queue. Later, it will be subclassed by the upcoming remote events queue.
The class should be made easy to enable/disable (e.g. it should not rely on other components), and easily unit tested. That is the first criteria as more and more tests will be added with time. One should be able to mimic a software behavior or any OS behavior in unit tests and verify the awaited FS events.