(PUP-2898) Add 4x Resource Expressions

This adds the 4x style resource expressions. They are now R-values (can be assigned).

This also improves the support for debugging a parser; a dump option has been added to the puppet parser command - it outputs the resulting model and can run with --validate or --no-validate to see the non validated tree. It accepts a string on the command line with -e, or from stdin, or from one or more .pp files. (A very useful debugging tool).

Further improvements made to generation of a debugging parser, and to the format of what it displays when used.

The ModelTreeDumper has a format change for the block expression - it now breaks and indents as it was not useful in practice (hard to read and compare). As a consequence many tests needed to change (all to the better (easier to read and compare results).

Additional maintenance is also included (dead code removal, removal of stale comments with TODOs etc).

Let's avoid this kind of assignment as a side effect. `files` is only used in the `else` section and so can be assigned there.