Add command list

This PR introduces template files for the the command list and a build environment setup to acutally generate it. It takes care of the list being alphabetically ordered.

One thing I'm still unsure about is whether I should add a source file to the `SOURCE_FILES` for each header generated. It would mean that you don't have to do it yourself, but it would also _force_ you to have those sources.