refactor control.c output to be more abstract

Lots of code explicitly assembles control protocol responses, including the numeric response codes, the line separators, etc.

We should abstract this better to simplify code and for greater consistency in the protocol.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information