We now populate the virtualenv at the beginning of configure. We have
also refactored how the virtualenv is populated.
populate_virtualenv.py is completely refactored. Its default action now
takes the topsrcdir and virtualenv paths and ensures a virtualenv is
created, populated, and up-to-date. If it is out of date, it repopulates
it. populate_virtualenv.py also now performs the Python version check
validation instead of configure. It's easier to manage in Python than to
have configure do it.