Beginning of Dynamic API Generation

This is the first commit for our attempt to add generic api generation
based off of the config file. It also adds the changes to the
requirements.txt file that I meant to add in the last commit, which was
supposed to represent a changeset for virtualenv changes only. Oh well.

This makes changes to the api script. We attempted to make the changes
by generating a file through jinja2 at first, but decided to just make
api.py instead dynamically handle routes instead. The code for the
jinja2 version is preserved here in case we decide to go back to that
version. The api.py script contains the code for dynamic imports only at
this point. Routes will be added later.