[cc1] Rewrite mktype()
[cc1] Rewrite mktype()

This function had several caveats and it was a bit difficult to read.
With this new version is clearer that struct, enum and unions are not
hashed and the flow is more linear.

k0gaMSX/scc,k0gaMSX/scc,k0gaMSX/scc