func (m *CommandMap) Init() {
	defer m.Unlock()
	m.Lock()
	if m.M == nil {
		m.M = make(map[string]*Command)
		return
	}
	for k := range m.M {
		delete(m.M, k)
	}
}
Init initializes (or re-initialized) the CommandMap deleting all its
values (without changing its reference).
package cmdbox
import (
	"fmt"
	"sort"
	"sync"
	"github.com/rwxrob/cmdbox/util"
)
type CommandMap struct {
	M map[string]*Command
	sync.Mutex
}
func NewCommandMap() *CommandMap {
	m := new(CommandMap)
	m.Init()
	return m
}