Lose shell initialization variables

These are replaced with functions that do the right things for each shell.
Consolidate custom settings.

There's now just one variable, `venv-location', which should be set to
*either* a list, in which case it is a list of virtualenv directories,
or a string, in which case it is a directory in which all virtualenvs
are kept.
Begin work on refactoring

To be able to handle setups in which virtualenvs are spread around the filesystem.
Finish adapting workon and deactivate to work nicely with a list of venvs

Still have to adapt the utility functions.