split out lexTypeDeclaration (similar to lexIdentifier) for clarity

lexer how handles bracket depth state instead of local vars
remove those backups for errors, noisy
Tag now has real, evaluated type parameters

real parser type, can’t call it parser cuz we are already using the std
lib package of that name