Create MissingToken type to avoid calling Token.getText for nothing

because it's expensive for non-missing tokens
Replaces two foreach with c-for to cut down on memory allocation
Optim: rather ugly c-fors are cheaper than foreach
Optim: use this if simplify won't do anything
Optim: TypeDeclaration: Sets are cheaper than List