idl: Decouple idl-compiler data structures from grammar structure
idl: Decouple idl-compiler data structures from grammar structure

Instead of operating on the raw lists of tokens, transform them into
typed structures representation, which makes the code by many orders of
magnitude simpler to read, understand and extend.

This includes sweeping changes throughout the whole source code of the
tool, because almost every function was tightly coupled to the way
data was passed down from the parser right to the code generation
routines.

Tested manually by checking that old generated sources are precisely
the same as the new generated sources.

Signed-off-by: Pavel Solodovnikov <2cf5887fafb117b7ff3e29b9720a7305c3313494@scylladb.com>

scylladb/scylla,scylladb/scylla,scylladb/scylla,scylladb/scylla