Evaluate `all_documents` lazily.

Instead of loading all the documents into memory at once, we can load
them up in batches as they are needed. This should reduce memory use,
but more importantly avoids the problem of timeouts as elasticsearch
tries to form a response with several thousand documents in it.
Remove the really large query limit.

We don't need a query limit now we're fetching results in batches.
Merge pull request #69 from alphagov/lazy-all-docs

Evaluate `all_documents` lazily