(PUP-3274) Remove 3x Parser, Lexer and AST not used by compiler
This commit is a major removal:
- The 3x grammar and parser have been removed
- The factory metods to create a parser now only returns the 4x parser.
- The 3x lexer has been removed
- All AST classes not used by the compiler and in the bridge between the 4x evaluator and the rest of the puppet runtime have been removed.
- The Puppet[:parser] setting is switched to 'future' by default. Thus all spec and integration tests now run with future parser by default.
- As a consequence of the removals, many tests are removed, and many tests that ran twice (for 3x and 4x parser/evaluator) now only run for 4x. (With reduce spec run time as the result!).
- One collector related test is renamed to reflect that it tests "collection" and not the old "Collector" class.
- With the removal of the 3x ast, there is no need to support transformation to it, nor dumping of it. These classes have been removed.