allow all options of HTTPPool to be specified by users

The default constructor `NewHTTPPool ` is making too many assumptions about how people would use the library. For example, for security purpose I'd want groupcache to listen on a different port by calling Handle on a different ServeMux other than the `http.DefaultServeMux`. Others have also requested to be able to specify the basePath perhaps to shorter paths for performance reasons https://github.com/golang/groupcache/issues/22 ?
// Unlike NewHTTPPool, this function does not register the created pool as an HTTP handler.
// The returned *HTTPPool implements http.Handler and must be registered using http.Handle.