thread locals instead of locks for vars in Types.scala
replaces locks over numbers with AtomicIntegers
OMG need to synchronize Symbols.recursionTable