explicitly set Content-Type in Recovery handler

writing the panic HTML content without a known content-type header
is unreliable and leads to unpredictable results - particularly when
used with other middleware that sets the header in various cases
test for non-empty body after recovered panic