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