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.