Now that std::size is part of our supported compilers we can remove the old elems function.
requires literal string arrays, and implements more of the specifier specification. does not implement 'n' or '$' specifiers. falls back to snprintf for real arguments.