Refactor `process_tree` and `main` logic for throttled threading.

All threads are started in a separate process now, which allows us
to easily cap the number allowed to run concurrently. This also
allows us to have better control of how examples are marked as
complete. I.e., this is a lot more sane now.
Refactor publish.py threading so that it's also throttled.
Merge pull request #35 from plotly/andrew-tweak-threading

Refactor `process_tree` and `main` logic for throttled threading.