Fix body_size_limit negative handling (#838)
When body_size_limit is 0 (either explicitly or implicitly because it
wasn't specified) or less, we are setting it to math.MaxInt64. It turns
out that the implementation in http.MaxBytesReader tries to add 1 to the
specified value, and it wraps around. After that, it tries to use the
result to index an slice, causing it to panic.
Work around this by setting the limit to math.MaxInt64 - 1.
Also, if body_size_limit is exactly 0, leave it like that. That causes
the code to avoid setting up the limiter, saving some extra processing.
Signed-off-by: Marcelo E. Magallon <marcelo.magallon@grafana.com>