Probably won't continue work on this, since I discovered.
https://github.com/MasterQ32/gurl . It also can't use TOFU, depends on
proper certificate chain.
Also fixed up makefile.
The changes here at least make it possible to support protocols other
than HTTP in the receiving functions.
We could use `extern const char *__progname` to work on musl/glibc and
BSDs, but it's not a recommended interface, and they prefer
getprogname(). In the interest of proper platform usage, use
getprogname() on BSD and program_invocation_short_name on musl/glibc.
Supporting arc4random_buf and getrandom is pretty simple.
Hasn't been tested on an actual BSD platform.