whitespaces
tag, tag1: pattern match instead of ifs
no more premature optimization of tag1 noattr case

It also simplifies types a bit.
typespec: more strict tag types