Formatting
Get rid of isxdigit

Some implementations of the macro could be implemented with
an array. This could lead to problems with signed characters
underflowing said array, and could possibly either crash the
program or supply the URL decoding step with bogus data.

These changes also let us avoid testing the value essentially
twice.
Clarify bit manipulation in UTF-8 validation
Fix a line parsing bounds issue

Too few spaces would make things go kaboom.
Fix UTF-8 request handling

Only NULLify [0,32[, since char is signed.
Fix client disconnects
Add dependency lists to the clean target