Make the benchmark -n flag more realistic by interleaving fetches.
Make the benchmark -n flag more realistic by interleaving fetches.

Before, with -n100, we'd do:
   100 fetches of component 1
   100 fetches of component 2
   100 fetches of component 3
etc.

This was, let me just say, very generous to our lru cache.  Now we
reverse the loops, and do
   fetch 1 of component 1
   fetch 1 of component 2
   fetch 1 of component 3
   ...
   fetch 2 of component 1
   fetch 2 of component 2
   fetch 2 of component 3
   ...

This was surprisingly involved, due to error propagation.  (In fact,
I still repeat some errors unnecessarily, due to the async nature of
some of the code.)

I also fixed a bug in how rate-limiting deals with errors, that showed
up in testing.

Test plan:
    % tools/benchmark_ka_component.js -n2 -r1 ../webapp/javascript/editor-package/search-result-preview-widget.jsx.fixture.js ../webapp/javascript/content-library-package/components/concept-thumbnail.jsx.fixture.js ../webapp/javascript/learn-storm-package/kickoff-pledge.jsx ../webapp/javascript/learn-storm-package/kickoff-pledge.jsx.fixture.js
    Skipping /home/csilvers/khan/webapp/javascript/editor-package/search-result-preview-widget.jsx.fixture.js: Error: Cannot find module 'underscore'
    Skipping ../webapp/javascript/learn-storm-package/kickoff-pledge.jsx: Error: cannot infer component from /home/csilvers/khan/webapp/javascript/learn-storm-package/kickoff-pledge.jsx
    javascript/content-library-package/components/concept-thumbnail.jsx: 1682
    javascript/learn-storm-package/kickoff-pledge.jsx: 1393
    Skipping /home/csilvers/khan/webapp/javascript/editor-package/search-result-preview-widget.jsx.fixture.js: Error: Cannot find module 'underscore'
    javascript/content-library-package/components/concept-thumbnail.jsx: 1682
    javascript/learn-storm-package/kickoff-pledge.jsx: 1394

The search-results-preview-widget says "skipping" twice, which isn't
ideal.  But kickoff-pledge.jsx only says skipping once.  And for the
actual successfully parsed components, we alternate between components
as desired.

Khan/react-render-server,Khan/react-render-server,Khan/react-render-server