Create pytest fixtures script & virtualenv

The script fixture gives an isolated instance of a customized
version of scripttest's TestFileEnvironment.

The virtualenv fixture creates an isolated virtual environment
with the pip that is being tested installed.
Rewrite the bundle functional tests to be better isolated
Rewrite completion tests for better isolation