This patch implements a standard GLR parsing algorithm, the core piece of the pseudoparser:
- it parses preprocessed C++ code, currently it supports correct code only and parse them as a translation-unit;
- it produces a forest which stores all possible trees in an efficient manner (only a single node being build for per (SymbolID, Token Range)); no disambiguation yet;
nit: *pointers* are stored as trailing objects, not the parents themselves