func New(wrapper ...Wrapper) (h http.Handler) {
	if DEBUG {
		return _debug(wrapper...)
	}
	h = NoOp
	for i := len(wrapper) - 1; i >= 0; i-- {
		h = wrapper[i].Wrap(h)
	}
	return
}
New returns the wrapping http.Handler that returned from calling
the Wrap method on the first given wrapper that received the returned
handler of returning from the second wrappers Wrap method and so on.

The last wrapper begins the loop receiving the NoOp handler.

When the ServeHTTP method of the returned handler is called each wrapping
handler may call is next until the NoOp handler is run.

Or some wrapper decides not to call next.ServeHTTP.

If DEBUG is set, each handler is wrapped with a Debug struct that calls DEBUGGER.Debug before
running the handler.
package wrap
import (
	"fmt"
	"net/http/httptest"
	"net/http"
)
type Wrapper interface {
	Wrap(next http.Handler) http.Handler
}