Fix Issue 8877 - std.encoding.transcode is extremely slow
Add std.uni.byGrapheme and std.uni.byCodePoint
Fix issue 11583.

The problem is that the assumption that the first word of a BigUint is
always non-zero is false when BigUint == biguintcore.ZERO, which is
defined to be [0]. So we need to check for that case in
BigUint.opCmp(ulong).

Also, crash-proof BigUint's invariant, since it would cause an
out-of-bounds array access if a bug causes data.length==0.
Merge pull request #1715 from quickfur/issue11583

Fix issue 11583.
Merge pull request #1736 from JakobOvrum/graphemerange

Add std.uni.byGrapheme and std.uni.byCodePoint
Merge pull request #891 from Kozzi11/master

Fix Issue 8877 - std.encoding.transcode is extremely slow