spec: rules for index expressions, len, cap, with type parameter types
spec: rules for index expressions, len, cap, with type parameter types

We want to support some special cases for index expressions, len, and
cap on operands of type parameters (such as indexing a value constrained
by byte slices and strings), hence the extra rules.

Change-Id: I4a07dc7e64bb47361b021d606c52eae1784d5430
Reviewed-on: https://go-review.googlesource.com/c/go/+/366814
Trust: Robert Griesemer <a6752097faebf1f02d80107d77a9be009089afe3@golang.org>
Trust: Dan Scales <7338a4f274e3bf1354488b9d1f344f4c9a69a8fb@google.com>
Reviewed-by: Dan Scales <7338a4f274e3bf1354488b9d1f344f4c9a69a8fb@google.com>

golang/go,nawawi/go,cloudflare/go,nawawi/go,CAFxX/go,golang/go,golang/go,nawawi/go,CAFxX/go,golang/go,golang/go,CAFxX/go,CAFxX/go,CAFxX/go,cloudflare/go,cloudflare/go,CAFxX/go,cloudflare/go,cloudflare/go,cloudflare/go,cloudflare/go,CAFxX/go,golang/go,CAFxX/go,golang/go,nawawi/go,nawawi/go,nawawi/go,nawawi/go,golang/go,nawawi/go,cloudflare/go