(PDB-238) - Remove v1 API - part 1

This commit starts some refactoring to the existing PuppetDB HTTP API to make
removing v1 portions of the API easier. This is being broken into two commits
as the 1.6.x branch will benefit from the refactor and master can build on this
and actually remove the v1 stuff (along with the docs etc). This commit contains:

- Moving v1 functions used by v2/v3 to api.clj
- Having v2/v3 call into api.clj from their routes
- Move former v1 tests into test/api.clj
- Changed the v1 tests to use the functions themselves (not going in through the top *app*)
- Add tests for the same api calls going through both v2 and v3 routes

Conflicts:
	src/com/puppetlabs/puppetdb/query.clj
	src/com/puppetlabs/puppetdb/query/nodes.clj
	test/com/puppetlabs/puppetdb/test/http/v1/command.clj
	test/com/puppetlabs/puppetdb/test/http/v1/deprecation.clj
	test/com/puppetlabs/puppetdb/test/http/v1/facts.clj
	test/com/puppetlabs/puppetdb/test/http/v1/metrics.clj
	test/com/puppetlabs/puppetdb/test/http/v1/node.clj
	test/com/puppetlabs/puppetdb/test/http/v1/resources.clj
	test/com/puppetlabs/puppetdb/test/http/v1/status.clj
	test/com/puppetlabs/puppetdb/test/http/v1/version.clj
	test/com/puppetlabs/puppetdb/test/query/facts.clj
Split metrics/version/command out of api.clj and into their own
namespaces
Merge pull request #837 from senior/ticket/1.6.x/pdb-238-v1-refactor

v1 shared route refactor