New CMake parser

The new parser adds support for macro() expansion and foreach()
evaluation. Recursive calls are unsupported and while be silently
ignored.
Unquoted empty variables expand to nothing