Some more #DecemberAdventure work from the bus:

- Improved codegen to avoid generating code for unused functions.
- Added the `#if` compiler directive for conditional compilation based on a given --flag.
- Added the `#error` compiler directive to ensure we have a way to signal a compilation error in some path (for example, unimplemented library functions for a given OS and such).
- Added the `#emit` compiler directive to be able to generate code directly on the backend verbatim. Now #badlang is a C macro assembler lol.

Here is everything together.

#pldev

@bd > it's a C macro assembler lol

👀

I have a few of those, this might unironically be a good replacement 😂