unicode/norm: fix counting of modifiers for multi-segment decompositions

In some rare cases the counting was mashed, leading to a crash or
miscounting of modifiers.

Code now relies more on streamSafe type to find segments than before.

Also fixed some comments.

Change-Id: If10cbae44402cf9d479e56e74acc2c9717fed984
Reviewed-on: https://go-review.googlesource.com/40454
Run-TryBot: Marcel van Lohuizen <mpvl@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Nigel Tao <nigeltao@golang.org>
5 files changed