Finish new prefix stack setup.

The global prefixes is now a stack of stacks. I'm super tired right now
and can't remember why I did this, but I'm pretty sure I had a good
reason.

Note that 57.water is still not working yet. That is waiting for
prefixes to be attributes off of leaf strings.

Oh, now I remember. It's because it's much easier to have nice prefix
attributes this way. For example, if (plus_minus_operator) is pushed to
the prefix stack, it's easier to check that number.prefix == '+' than it
would be to do some kind of regex match against, e.g., " *\+ *".