Fix a bounds error in the ban_glyphs arena tag.

The check for the eighth bit was broken.
Simplify
Implement shuffle_array using std::shuffle

Using our own RNG rather than std's.  Also generalise the vector version
so it works on all kinds of random-access containers, in particular
fixed-size arrays.  Use that version in several places so we don't have
to manually pass in a size parameter.