testbench.py: add an option to run some times before benchmarking

This is primarily aimed at testing in environments like PyPy which have
a real warmup cost. Allowing some number of un-timed warmups allows
better measurements of what request timing really looks like.
Allow caching of generators only, without the full renderer cache

This adds a new 'generator-cache' option that allows you to enable
caching only of generators (currently filesystem walks) without having
to enable the full renderer cache. This is probably mostly useful for
benchmarking although it can (drastically) reduce cache disk space needs
if you must.