Truffle-DSL: better support for types with type arguments.
used void timer/metric implementation for conditional timers/metrics if neither -G:Time nor -G:Meter is specified
refactored inner classes to be static top level classes to workaround javac "cannot find symbol" issue