strings: speed-up replace for byteStringReplacer case
strings: speed-up replace for byteStringReplacer case

Use Count instead of loop to determine a number of replacements.
Also increment index instead of advancing slices, to avoid some extra stores.
Shows very significant speed-up on html benchmarks:

Escape-6          34.2µs ± 2%  20.8µs ± 2%  -39.06%  (p=0.000 n=10+10)
EscapeNone-6      7.04µs ± 1%  1.05µs ± 0%  -85.03%  (p=0.000 n=10+10)

On benchmarks in package strings results are still significant:

ByteStringMatch-6    1.59µs ± 2%    1.17µs ± 2%  -26.35%  (p=0.000 n=10+10)
HTMLEscapeNew-6       390ns ± 2%     337ns ± 2%  -13.62%  (p=0.000 n=10+10)
HTMLEscapeOld-6       621ns ± 2%     603ns ± 2%   -2.95%  (p=0.000 n=10+9)

Change-Id: Ibea3235b6e451ba72cd5db57716d17b917e72944
Reviewed-on: https://go-review.googlesource.com/97255
Run-TryBot: Ilya Tocar <112830fdd81fb6e3c10661fec6ab883a8a8a909f@intel.com>
TryBot-Result: Gobot Gobot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Reviewed-by: Brad Fitzpatrick <ae9783c0b0efc69cd85ab025ddd17aa44cdc4aa5@golang.org>

CAFxX/go,josharian/go,Cofyc/go,josharian/go,cloudflare/go,cloudflare/go,akutz/go,cloudflare/go,josharian/go,cloudflare/go,Cofyc/go,golang/go,cloudflare/go,josharian/go,CAFxX/go,nawawi/go,akutz/go,Cofyc/go,nawawi/go,josharian/go,nawawi/go,akutz/go,golang/go,josharian/go,golang/go,CAFxX/go,nawawi/go,nawawi/go,golang/go,cloudflare/go,akutz/go,CAFxX/go,Cofyc/go,akutz/go,golang/go,nawawi/go,Cofyc/go,nawawi/go,Cofyc/go,josharian/go,nawawi/go,cloudflare/go,Cofyc/go,golang/go,akutz/go,CAFxX/go,CAFxX/go,josharian/go,golang/go,golang/go,cloudflare/go,CAFxX/go,CAFxX/go,akutz/go,akutz/go,Cofyc/go