sketches logical groups of types

1) refs, 2) applications, 3) weirdos, 4) placeholders

The main goal of this separation is to figure out which ops are applicable
to which types. E.g. I don't think that it's a good idea to expose an
equivalent of typeSymbol/termSymbol for anything other than #1.

Placeholders are an effing mess btw. I already see how they are going to
bring us pain. However, let's deal with it one shtep at a time.