Split RAPPOR tools into reporting and analysis phases.  Add doc/data-flow.md to describe the new structure.

The easiest way to review this is to probably read the doc first, and then the code.  Doc: http://google.github.io/rappor/doc/data-flow.html

- new tools: hash_candidates.py and sum_bits.py (see data-flow doc)
- rappor.py: add function to read params from a CSV, so the new tools can use it
- demo.sh: the candidates are now a superset of the true input strings (instead of matching exactly).  The option is also given to "miss" candidates.
- data-flow.md is a rewritten version of the old tutorial.md
- gen_sim_input.py: generate 7 values per client, instead of randomly choosing 5 to 9
- automation to build the docs

All tests pass and lint passes.


You could add here that we choose to have some number of values (VALUES_PER_CLIENT) > 1 to indicate that rappor allows a client to report multiple values that count towards the overall statistics.

This might of course be much easier to understand if/when we publish a realistic dataset or gather enough information to simulate them.