function _updateCommandAndKeyMaps(newBinding) {
        if (_allCommands.length === 0) {
            return;
        }

        if (newBinding && newBinding.commandID && _allCommands.indexOf(newBinding.commandID) === -1) {
            _defaultKeyMap[newBinding.commandID] = _.cloneDeep(newBinding);

            // Process user key map again to catch any reassignment to all new key bindings added from extensions.
            _loadUserKeyMap();
        }
    }
@private

Updates _allCommands array and _defaultKeyMap with the new key binding
if it is not yet in the _allCommands array. _allCommands array is initialized
only in extensionsLoaded event. So any new commands or key bindings added after
that will be updated here.

@param {{commandID: string, key: string, displayKey:string, explicitPlatform: string}} newBinding