Bulk data API report functions

This alters the API functions to accept multiple entities as parameters with optional check lists, and tweaks the output data to be more consistent. There's one rather complex test to demonstrate how this works.

This is a breaking change to the current API functions -- I thought I'd get things working in situ, and if we want to introduce API versioning at this point it'd be easy enough to make this a side-by-side change.

A diff for the proposed doc changes is at https://gist.github.com/ali-graham/ff15c507e7ba76e1ba13 (I stopped maintaining a separate fork of the doc submodule, it was introducing too many conflicts in commits).

See #123.