Subsystem restructuring. Please avoid merging stuff which would conflict with this. This took days to update.

some recent merges were lost due to entire conflicting files. I did ask nicely.
preprocessor macros aren't values, they are tokens.

Think of them as copypastaing some code over every DOCKING_PORT_HIGHLIGHT
so every DOCKING_PORT_HIGHLIGHT would just be replaced with nothing.

Miauw you should really know this already if you're maintaining