Refactor macro expansion some to prepare for some extreme bullshit I want to try.
Get rid of the default case in Token's Show implementation
Do delayed reparsing of macro expansion inside of macro expansions.

Now, when we expand a macro, we try to expand any other macro invocations
in its expansion before we reparse anything. This gives us some freedom to
have macros that return things that aren't expressions, as long as they are
used by other macros.

So, we can do something like:
macro swizzle!(a, b, c) { $b, $c, $a }
macro wat!(a, b, c) { lol(swizzle!($a, $b, $c)) }

and when we invoke wat!(1, 2, 3) it will expand to lol(2, 3, 1).

It works by, after expanding a macro to a token stream, scanning the
tokens looking for IdentBangs; when they are found, we parse a macro
invocation and recursively expand it. Once we have finished this,
*then* we reparse as an expr.

Maybe this is totally fucking wrong?