(PUP-1151) Add routing framework.

Add a routing framework for the HTTP module that routes requests to
either the V1 or V2 API as appropriate (first it sees if the V2 API
would like to handle a request, and if not it's passed off to the V1
API).

To support the routing framework, several new classes in the HTTP module
are introduced: Request, Route, Response, and MemoryResponse (for
testing).

The V2 API is implemented in lib/puppet/network/http/api/v2.rb.

Change the method to handle the request from process to call, which
allows using lamdbas and procs as route handlers.

Change the require path in the HTTP module to break a cycle, which
necessitates changing requires in a few other files to just require the
entire Puppet::Network::HTTP module (rather than just the V1 API class).

Delete Puppet::Network::HTTP:RackHttpHandler because it was useless.

Change the initialize method of Puppet::Network::HTTP::WEBrickRest to
omit the unused handler argument.