Don't render empty JSONResponse

The App Framework sends a `Content-Length` header for browsers to know how much to read before they can close the connection.
As JSONResponse initializes it's data with an empty array this is encoded as JSON and thus `Content-Length` is set to `2` causing the browser to wait for the two remaining bytes which never comes.
I noticed this while adding support for HEAD requests,

@DeepDiver1975 @karlitschek