Freeze package + version requirements and changed pip install command

Froze versions and formalized package dependencies into `requirements.txt` to help with virtualenv-based development and deployment setups.

For deployment without virtualenv (i.e. single-use VPS setups), running the following is equivalent.

```sh
    sudo ./prepare.sh
```