spec: clarify that each block has its own version of iota
spec: clarify that each block has its own version of iota

Issue #15550 is clearly an esoteric case but the spec was silent
about it and we had diverging implementations. By making `iota`
and index that is relative to the respective constant declaration,
nested const declarations won't affect outer values of `iota`.

cmd/compile and go/types already follow this semantics.

Fixes #15550.

Change-Id: If138189e3ea4373f8ba50ac6fb1d219b481f8698
Reviewed-on: https://go-review.googlesource.com/71750
Reviewed-by: Rob Pike <4dc7c9ec434ed06502767136789763ec11d2c4b7@golang.org>
Reviewed-by: Matthew Dempsky <e56ac2c500064424afac424d4b5e53bd0570a731@google.com>
Reviewed-by: Ian Lance Taylor <87e9c6d529889242b7e184afb632328636553ab4@golang.org>

codestation/go,CAFxX/go,golang/go,codestation/go,akutz/go,codestation/go,CAFxX/go,cloudflare/go,Cofyc/go,josharian/go,Cofyc/go,nawawi/go,Cofyc/go,akutz/go,akutz/go,josharian/go,christopher-henderson/Go,cloudflare/go,golang/go,nawawi/go,codestation/go,akutz/go,golang/go,nawawi/go,josharian/go,Cofyc/go,golang/go,codestation/go,Cofyc/go,CAFxX/go,CAFxX/go,codestation/go,akutz/go,josharian/go,akutz/go,nawawi/go,nawawi/go,codestation/go,josharian/go,golang/go,golang/go,cloudflare/go,cloudflare/go,cloudflare/go,CAFxX/go,akutz/go,akutz/go,codestation/go,nawawi/go,golang/go,nawawi/go,Cofyc/go,Cofyc/go,josharian/go,CAFxX/go,cloudflare/go,nawawi/go,josharian/go,golang/go,CAFxX/go,josharian/go,Cofyc/go,cloudflare/go,cloudflare/go,CAFxX/go