Cleanup
Add a LIST_HEADER macro

To save us from specifying the `next' and `prev' pointers all the time.

It's not perfect, just a tiny bit better.
Fix some compiler warnings

`-Weverything' seems to have found a few problems.

Also enabled clang sanitizers by default.
Fix two Clang static analyzer issues

Overflowing memory allocations should crash or exit anyway.
Update the README