httpcore.py: improve messages logged for bad requests

The code used to naively believe that no one would really give us
requests with bad query parameters. Ha ha. Silly code. It turns out
people do that *all the time*. Now we log much gentler messages if
the URL has mangled query parameters and only log the 'view X not
allowed in HTTP command Y' warning if view X is a valid view.

(This also contains a prequel of better handling of things on garbled
POSTs.)