first implementation of type parameters in tag values
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
rename to isTypeDecl for consistency
fix test
move emit out of loop for clarity
update genwriter to handle v4 Tags
container to use new Values
fix foowriter
evaluator can be a property of parsr instead of being passed around
implement String on TagValue
implement LongName on Type, for ugly stuff like map[thing][]*foo
rename template.ApplicableTo to ApplicableToType
add RequiresTypeParameters & ApplicableToValue to template
begin implementation of SliceWriter, to supersede GenWriter
tighten up TagValue.String
init should use NewSliceWriter()
new Constraint type to replace "Requires*"; templates get a TypeParameterConstraints slice

- naming convention Foo[T] to distinguish templates that require type
parameters
- failed constraint tests more informative
restore non-parametric Min and Max templates; fix Select[T] and Sum[T]
comment