Record Token Type When Building Commands

There was no reason to use regex when formatting output. I already know
the type of each token (except Placeholder). So, I changed each builder
to return a TokenStream that can create an ITokenSource.

The only noteable change here is that Placeholder is now limited to
identifier and can't be arbitrary anymore. Of course, it couldn't be
very arbitrary to begin with.