Add a caller-supplied component to http pool keys

The http pool module offers a default pool registry
as a convenience so that callers don't handle pool creating
and registering. However this pool was unconditionally global,
each pool identified by (scheme, network location).
Thus several modules connecting to the same server within the same
python interpreter would necessarily share the same pool.

This was amended by the introduction of a pool key, making
each pool identified by (pool key, scheme, network location).

The pool key is optional, and if not given a default is used,
recreating the previous global pool sharing.