use "fast" test environment for setuptools and distribute

This cuts ~3 mins (out of 13) for the py3 pip tests.
It also cuts out the code redundancy that had built up between the "fast" and non-fast test classes. There's now one main class, with a sliver class for Distribute, that can be dropped after the merge.

The problem started awhile back in an attempt to handle not reusing a cached setuptools virtualenv for distribute tests, but the result was a painful recreation of distribute virtualenvs for each test requiring distribute.

also adds tests for the caching behavior of reset_env.