More user-friendly handling of 4xx and 5xx errors

Hi!

Nice started kit. But when I was trying to get my feet wet I got couple of weird errors like this one:
"panic: invalid character 'V' looking for beginning of value". So I had to debug to understand what happened. I figured out that I got 400 response with "Vindinium - Time out! You must play faster" string in a response body, and app was trying to parse this string as JSON. So in this PR I propose more user-friendly 40x and 50x errors handling. What do you think?