Reimplementing command queue to be bound-buffer (or ring buffer).

Now it keeps order of inserted commands.
Refactoring (renaming) command queue implementation to watcher-base command queue.

This should make space for 'condition-variable-based' command queue.