FOR REVIEW: (PUP-3642) Remove environment name from URL path

FOR REVIEW ONLY
----------------
This probably isn't quite ready yet.  I need to talk to @hlindberg , @kylog , or @joshcooper and make sure that what I'm doing here for `save` requests is sane; I might need to go put in a bit more string massaging to prevent putting extra '?' or '&' characters into the URL when they're not needed; and I need to make sure that @ahpook is ready to approve this change for 4.0.


This commit makes some changes to the indirector network layer
such that the environment name is no longer a part of the main
URL path structure.  Instead, the environment becomes a query
parameter for GET requests, or part of the form body for POST
requests.  This will allow us to have a more finite URL space
and run Puppet in the same webserver with other apps, without
worrying about URL collisions.
And this; many of the URLs will now end up with a trailing ampersand on the query string, which I can clean up if we think it's worthwhile.