By itself the HTTP layer can track transaction sizes only with
content-length, including on POST.
However it's also possible for whatever logically interprets
the payload to determine its length, for example with multipart,
the multipart headers can do that job.
This allows the spa stuff to drive the content length tracking,
so lws can interpret multipart POST client payload without needing
an overall content-length.
This enables selected things from -Wextra, can't use -Wextra because it is
fussy enough to complain about unused params on functions... they are
there for a reason.
-Wsign-compare
-Wignored-qualifiers
not -Wimplicit-fallthrough=3 ... only on gcc 7
-Wtype-limits
-Wuninitialized
not -Wclobbered ... only on gcc 7ish
fix the warnings everywhere they were found.