Merge pull request #2239 from zaphod42/feature/master/pup-536-environment-enumeration

(PUP-1151) Take a first step toward a new HTTP API
(PUP-1151) Fix environment enumeration endpoint test
Merge pull request #2241 from aperiodic/pup-1151-environment-enumeration-test-fix

(PUP-1151) Fix environment enumeration endpoint test
(PUP-716) File19Windows#symlink calls exist? on instance not class.

Fixes a bug that was calling exist? on the File19Windows impl class when
it was now an instance method of the same.
Merge pull request #2242 from jpartlow/issue/master/pup-716-fix-exist-call-in-file19windows-impl

(PUP-716) File19Windows#symlink calls exist? on instance not class.
Merge pull request #2240 from zaphod42/feature/master/pup-1151-environment-enumeration

(PUP-1151) Document environments responses
(PUP-1151) Move HTTP Errors to own module

They aren't really part of the handler, and many more areas of HTTP
processing are referring to them.
(PUP-1151) Authorize v2 api requests

This commit does several things, all in order to make authorizing API V2
requests a bit easier:

  * Renames /v2 to /v2.0, which was chosen because it doesn't conflict
    with a legal environment name in the V1 API.
  * Adds route chaining so that a handler can deal with a request
    prefixed with /v2.0 and then continue on to another route
  * Changes how calls to authorization are handled so that full paths
    are checked rather than indirection/key pairs.
  * Introduces an authorization step in the /v2.0 request chain. This is
    currently limited to only handle GET requests (seen as find in
    auth.conf).