soup-headers: misc improvements
Return an error if the headers start with '\0', ignore header lines
with zero-length header names, and convert excess CRs to spaces. All
of these could possibly occur in received headers, and were previously
hitting g_return_if_fails().
Add a bunch of test cases to header-tests to test these cases (and
some others that we already handled correctly but weren't testing).
Fix the documentation of @str on soup_headers_parse* to reflect
reality.
Based on a patch from Simon McVittie.
https://bugzilla.gnome.org/show_bug.cgi?id=666316