Simplify client config.py and refactor publishing script

The publishing script now does some smarter file inclusion -- protocols and test cases that are not used will not be included in the zip.

I've also added two flags to the publishing script:
* `-c`: takes in a specific `config.py`. This allows staff to create custom configs instead of using the default (which includes all protcols and test cases).
* `-d`: takes in a destination directory in which to put the ok zip.

Ideally, we'd have some robust tests for the publishing script. I've tested it manually and things seem to be working.
We should put this in a global variable at the top of this file in case we decide to change it somewhere.