SI-7570 top-level codegen for toolboxes

Provides a way to inject top-level classes, traits and modules into
toolbox universes.

Previously that was impossible, because compile and eval both wrap their
arguments into an enclosing method of a synthetic module, which makes it
impossible to later on refer to any definitions from the outside.
addresses pull request feedback
Merge pull request #3406 from xeno-by/ticket/7570

SI-7570 top-level codegen for toolboxes