Add missing `<unistd.h>`
Cleanester definition of `input()` and `output()`
God dammit, what have I done.
Simplify implementation in `http.c`
Because `input()` and `output()` handle communication errors themselves,
this is not necessary to check if they failed or not.

This is possible only because `input()` and `output()` are used by child
processes.
Make `fullpath()` return value static
Now `fullpath()` returns a pointer to a static-qualified object on
success. That means 2 successful calls to `fullpath()` return the same
pointer.

`NULL` is yet returned otherwise.
Remove proper `CLOSE()` statements
Yes I know, this is not very neat.

I should properly close `client` with `CLOSE()` once its request has
been handled. But if `input()` or `output()` fails, there is no proper
way to close every open file descriptors without adding extra
complications in the sources.

After all, POSIX states that every open file descriptor must be
automatically closed at the end of the program.

So that's the point: I trust the OS to close my crap once the child
process has finished to play with the client.
Correct signed arithmetic
Fix a small dirty thing
A header must end with `\r\n` twice.
My old dirty solution was to send `\r\n` twice in order to handle
replies without any entity body.

I fixed that in `http.h` by adding extra `\r\n` to « empty » status
codes.
Add warnings in `server.c`
Timestamp support