fixed horrible pointer mangling

How, I ask, was this software able to compile and function before with these
crazy buffer overruns and writes to random allocated regions?

C truly is a sharp knife, and I really wasn't giving it the proper respect.

This commit fixes the problems, the segfaults, and dries up some of the tears
and blood.  However, things are still not working for word-sized striping.
Fixing that is as simple as some careful copy/paste from the byte-sized version
of the algorithm.