Support WSA mode by means of a token stream filter

Instead of maintaining a separate grammar for the WSA mode it uses a token stream filter to produce tokens as expected by the standard grammar. This not only helps keeping them in sync but will also allow to make the *wsa* mode a simple flag for ParserSettings, reducing quite a bit the code for the parser assembly.

I also took the chance to introduce the ability to use `end` tokens in the indented grammar, they are just handled like whitespace.