[core] Optimize utf8_substr. Do not use the utf8 iterator

Use a new utf8_offset function instead. This can be optimized
further if we can guarantee word alignment of the buffers.
Add a special utf8 vtable method for substr.

This is a hot item for perl6, see GH #1097
Timings: from 440s to 388s for the "Stage parse" in perl6.
However without utf8 strings at all (my constant π := pi)
the parse stage is still only 173s.

Do not export the Parrot_utf8skip table anymore, not used
by parrot, nqp, perl6.