cache iterators in encoding_find_*cclass

encoding_find_cclass and encoding_find_notcclass can now cache an iterator
between calls, because there is at least one usage of the pattern "scan a
whole string for newlines" in rakudo.

for utf8 files, like Actions.nqp and Grammar.nqp, it used to take 5s and 2s
respectively, now takes 2.4s and 0.9s respectively after the patch.

Benabik:
My only concern is that there's a chance of false positive on the cache

find_cclass called
string GC'd
new string allocated at same address
find_cclass called

This seems unlikely, but heisenbug paths like this are really hard to track
down if tripped over.  We could add the cached iterator directly to the
string, adding two words per string that we can try to reuse any time
STRING_iter_skip is called.  (Probably involves an API change:
STRING_ITER_AT instead of STRING_ITER.)

And now that I think about it, caches can be very problematic in threaded
environments.

See https://github.com/parrot/parrot/pull/1027