func (h *HelperMap) Add(key string, helper interface{}) error {
	h.moot.Lock()
	defer h.moot.Unlock()
	if h.helpers == nil {
		h.helpers = map[string]interface{}{}
	}
	err := h.validateHelper(key, helper)
	if err != nil {
		return errors.WithStack(err)
	}
	h.helpers[key] = helper
	return nil
}
Add a new helper to the map. New Helpers will be validated to ensure they
meet the requirements for a helper:
/*
func(...) (string) {}
func(...) (string, error) {}
func(...) (template.HTML) {}
func(...) (template.HTML, error) {}
package velvet
import (
	"fmt"
	"reflect"
	"sync"
	"github.com/pkg/errors"
)
type HelperMap struct {
	moot    *sync.Mutex
	helpers map[string]interface{}
}
func NewHelperMap() (HelperMap, error) {
	hm := HelperMap{
		helpers: map[string]interface{}{},
		moot:    &sync.Mutex{},
	}
	err := hm.AddMany(Helpers.Helpers())
	if err != nil {
		return hm, errors.WithStack(err)
	}
	return hm, nil
}