ported @adriaanm's inferKind

- ported inferKind from
https://github.com/adriaanm/scala/blob/explicitkinds/src/compiler/scala/
tools/nsc/symtab/Kinds.scala
- implemented star notation
- implemented typeOfTypeString