Change SyntaxChecker prototype again

This time, the plan is to make keywords only collect pointers which they choose
to let the syntax processor handle.

This means there is no need to make SyntaxProcessor's .validate(), nor
SyntaxReport, public at all (they are now private and package local
respectively).

Another advantage is that tree pointer manipulation is done in one place only: a
great way to ensure no stack manipulation is forgotten! And a great way to
ensure it is more testable as well. Win win.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>