* server: Add a custom error handler
* transport: Add methods that do not handle exceptions
* transport: Let users specify an error handler for unpacking a pack file
* ReceivePack: Use try-with-resources for PostReceiveHook
* transport: Consolidate status reporting code
* transport: Add ReceiveCommandErrorHandler
* transport: Move exception handler to the caller
* transport: Move handling code to the caller side
* UploadPack: Create a method that propagates an exception as-is
* UploadPack: Consolidate the sideband handling code to one place
* UploadPack: Introduce ErrorWriter