gitweb.perl: use die not goto
Using "goto DONE_GITWEB" instead of throwing an exception
with die causes any optimized CGI processing (mod_perl,
FCGI, PSGI, etc.) to be aborted prematurely.
This can happen for various reasons that are not fatal,
rather they are simply indicating that all output has
been written for the current request (perhaps an object
wasn't found) and the current request is done.
These conditions are part of normal CGI processing and
SHOULD NOT abort the script entirely, rather just finish
up the current request.
What happens when the script is aborted entirely is that
the host process (mod_perl, mod_fcgid, etc.) must detect
the error and then spawn another copy of the script.
That all takes time and devastates throughput unnecessarily.
Instead throw an exception using die in these cases and
catch it with eval to indicate that the current request
has ended and the next should begin.
Signed-off-by: Kyle J. McKay <mackyle@gmail.com>