String formatting complete

- We do pretty substantial parameter validation at compile time
- This requires that we take a string literal as the format
- I'm ok with this limitation, as allowing arbitrary strings
  prevents compile time checking and makes it really difficult
  to make th string formatting code secure.
- My original intent was to entirely write the formatting without
  using variable arguments in the C++ generated code
- It turns out this is incredibily difficult and maybe impossible
- So, now we do the param validation at compile time, and at
  runtime we pass the values to snprintf