(PUP-3644) Copy v1 to v3

This commit simply makes a copy of the v1 http handler code
to a new file called v3.rb; no code changes yet other than
changing the class name from `V1` to `V3`.  Doing this as
an isolated commit so that subsequent changes to the v3.rb
code will have a more meaningful diff in the VCS history.

It also copies the spec tests for v1 over to v3.
(PUP-3644) Move legacy routes to /v3 url namespace

This commit removes the "v1" HTTP API, which mounted
all of the various Puppet endpoints at "/" on the webserver.

In its place we now have the "v3" API, which includes
the versioned "/v3" prefix for all of the indirected URLs.
update auth.conf for v3 and acceptance fixes
(PUP-3644) Add environments endpoint to v3

This commit adds a copy of the environments endpoint to the v3
routes.  It includes a bit of refactoring (e.g. creating a new
class `V3::IndirectedRoutes` to contain the logic for all of the
routes that come from the indirector) in order to keep the code
for the newer style routes separate from the code for the indirector
routes.