Commit Briefs
hardcode the mapping text/gemini -> .gmi/.gemini
It's still possible to override this automatic mapping by just adding an entry like application/octet-stream gemini gmi in the `types' block.
allow add_mime to fail
add_mime nows allocate dinamically copies of the passed strings, so that we can actually free what we parse from the config file. This matters a lot especially with lengthy `types' block: strings that reach the internal mapping are never free'd, so every manual addition is leaked.
const-ify some tables
matches found with % grep -R '=[ ]*{' . | fgrep -v const
fix various compilation errors
Include gmid.h as first header in every file, as it then includes config.h (that defines _GNU_SOURCE for instance). Fix also a warning about unsigned vs signed const char pointers in openssl.
use recallocarray
it also does an overflow check on multiplication, other than being more readable.
improve mime handling
we still have an hardcoded list, but this implements the API needed to modify the mappings.