11331 add foreach

This contains an implementation of method calls.
The grammar allows method calls to specify an optional lambda expression.
Evaluation of a method call is based on the existing function mechanism.
An implementation of the foreach function is included.
Tests for the lexer/grammar/parser changes as well as for the foreach function are included.

See details in the issue.

Additional functions collect, select, reject, reduce are also implemented and are available on a branch for testing (pending if they should go into puppet or standardlib.