[backport] Carve up Types.scala

Step one of a plan to bring some order and thread
safety to this neck of the woods.

More info:

  https://gist.github.com/retronym/5081754
  https://groups.google.com/forum/?fromgroups=#!topic/scala-internals/MOvmcnbyb_g

Note that the sub package is named 'tpe' and not 'Types' to avoid
problems on case insensitive file systems, given the existing
trait 'Types.'