[CommandManager] Introduce GuiUnlocked event

This event will add up callbacks in case GuiLock is set, otherwise call it directly.
Introduce OnCurrentBuildOperationChanged
[Performance] MainToolbar buttons.

We were querying the whole project extension chain's CanExecute every 500ms. This commit introduces querying the CommandInfo only when the current BuildTarget's changes, such as current solution, current operation, active configuration. The MainToolbar behaves the same, the UI time spent doing the whole chain every 500ms is gone.