WIP on a generator that uses nested extern stages
Oops, last commit was in a broken state.
Merge branch 'generator' into nested_extern_generator
multiple related generators that call each other in one file

CMake build doesn't work with it yet.
Merge branch 'nested_extern_generator' into generator
extern_generator() and more

A few more changes:
— Moved generator_name from the RegisterGenerator declaration, into a
static method of the Generator subclass (enforced by CRTP).
— Added more common items to NamesInterface
— added get_generator_param_values() to recover the text values of
GeneratorParams
— added Generator::extern_generator call, which encapsulates
Func::define_extern() and does type inference. Updated the tiled_blur
and nested_externs examples to use it (instead of define_extern).
— reworked Makefile substantially to make aot-generation more explicit
(Generators get their own rules now).
— tightened the rules on generator and param names, to forbid initial _
and also to forbid consecutive __ anywhere (the latter serving as a way
to preserve a safe escaping technique if we later decide to add
name-mangling)
— updated the Doxygen comments for Generator

Note that gengen.sh is no longer used, but I have left it in place (for
now).