Preparing for Organizations

Major overhaul of the pagination object-oriented back-end.  Made much
more decoupled in preparation for organizations search, where we want to
be able to implement search, display, pagination, et cetera of
heterogeneous objects.

This required a change away from the previously tightly-coupled design
to a container-based design where a page is simply a collection of
results, each of which may contain a different kind of result.

Also managed to shoehorn in a much higher level of abstraction.  Result
and results templates are much more succinct now, and the delineation
between data collection, aggregation, etc. and data display is much
clearer.

Also threw in four dependencies that were missing from the repo before
for some reason.