Use virtualenv and requirements files

A few changes to the setup script:
- Most significantly, list dependencies in requirements files and install them all at once rather than one by one in each script.
- Allow the script to be run as an unprivileged user (and the resulting dev server can be run as an unprivileged user as well)
- Miscellaneous tweaks to settings flow