Introduce v3 query API endpoints

This commit introduces the v3 query endpoints.  For now, they are
all simply routing directly to the v2 endpoints; this commit is
merely scaffolding.

It also deprecates the v1 endpoints and introduces tests to
validate the deprecation warnings, and updates all acceptance tests
to use the new v3 endpoints.
Copy v2 query docs into new v3 directory

This is just a verbatim copy, to make subsequent changes
easier to see diffs on.
v3 query docs: update all occurrences of v2 to v3
Add `some-pred->>` threading macro
Add `paged-query-to-vec` fn

This commit adds a `paged-query-to-vec` function, which
accepts limit, offset, and order-by options and
wraps existing queries with extra SQL for paging
through result sets.
Added middleware for paging queries

This commit adds ring middleware that is used to parse and
validate query parameters relating to the new paging
support for our query APIs.
Remove clojureql references

* The `node` query namespace had a reference to clojureql even
  though it wasn't actually using it; removed.

* The `facts` query namespace had a few functions that were
  implemented using clojureql.  These implementations were
  going to make it harder to implement paging support for
  this endpoint, and the raw SQL implementations are not really
  any more complex; this commit refactors the namespace to
  remove the clojureql references and replace them with raw SQL.
Add basic paging support to `fact_names` endpoint
Add paging support to facts endpoint
Refactor test resource data generation into utils namespace

This commit simply moves a bunch of hard-coded logic for generating
test data for resources out of the test namespace and into a
utility namespace, where it can be used for additional tests.
Add paging support to resource query endpoint
Add paging support to `nodes` endpoint
Add paging support to events endpoint
Add paged query support to reports endpoint
Initial documentation re: paging query parameters
Cleanup based on review from @shakedown
Move order-by field validation logic out of jdbc functions
Move paging functions out of middleware namespace
DRY up column lists for query endpoints
Add strict query param validation for all endpoints

This commit gets rid of the specific query param presence/absence
validation that we were doing for the generic paging query parameters,
and replaces it with a more general white-list approach.  All query
endpoint now specify a list of required/optional query params, and
these are validated via the middleware.