fixes #267
bugfix: emulated thread vars used in combination with the mark & sweep GC
resulted in invalid code generation
allow `void` as a field type
allow keyword params for the `[]` and `{}` operators

conceptually, these operators are not very different from regular procs in the way
they are defined and overloaded. keyword params for them are admittedly less useful,
but they improve consistency and may help with generic instantiations once default
generic parameters are supported.
static and default params for generics
fix tforwardgeneric
fix threading tests

* more type names are valid expressions now
* void is properly stripped off during generic instantiation
further fixes for void stripping. fixes tvoid.
more test made green

the lambda lifting was trying too hard to ignore generic prods
isGenericRoutine was producing false-negatives and only
this allowed for some of the warning and error messages
to be triggered.

some files with mixed line endings were fixed
test cases for the new features