We no longer use getopt, but a bespoke parser loosely inspired by
https://github.com/skeeto/scratch/blob/master/parsers/imgo.c.
The purpose of this is to reduce duplication. Currently for every cli
flag we need to list it a total of 4 times. Once in the optstring, once
in the switch statement, once in the cli help (-h), and ideally once in the man
page (which is easy to forget). The new api should function exactly
like posix getopt, but allows us to only specify flags in one place and
generate all docs necessary. Additionally, the docs are available and
searchable using muon help.