New API method: WebGUI::Response::sendFile; it, as appropriate, calls
setRedirect or setStreamedFile, depending on enableStreamingUploads config var.
setStreamedFile now kicks off the XSendfile process.
File.pm now uses this instead of trying to set both a redirect and a stream.
IO::File::WithPath blows up if a file doesn't exist so this raises an exception
now.
The http now no longer insist that '0' is not a valid filename to stream.
site.psgi, depending on enableStreamingUploads, enables either the Static
or XSendfile middleware.
This is minimal in implementation right now in that there's no support for passing args, which would generally be objects
mixed with strings, to the middlewares being added, as would be necessary if the .psgi files were to be largely migrated
to the config files. I agree that it's important that upgrade scripts be able to add middleware (probably custom ones
that know how to get the session from %$env) but I'm not convinced of the utility of moving much logic out of
share/site.psgi.