Change external runner interface to spawn fewer processes.

This passes the expected number of hits and/or expected duration through
to the external runner process, so that it can manage that loop internally
rather than spawning a new process for each hit.
Add documentation on the new external-runner protocol.
Revert name-change of the "nb_steps" attribute on external runner class.

I had changed it to "num_steps" for my own clarity, but the "nb" prefix is
used elsewhere i nthe codebase so there's no point in making this one
inconsistent.
Fix flake.
Merge pull request #184 from mozilla-services/rfk/external-runner-refactor

Refactor the external runner protocol to spawn fewer processes.