Rework typedef/pointer resolution; support UnionDecl

We find the largest element in the UnionDecl and declare a bitstype to stand in for that.