Rewrite s3 decompressor to use NumPy, drop multiprocessing

I was inspired by today's Linux Journal article to finally get around to
learning how to use NumPy, and this s3 texture decompressor immediately
came to mind as something that would likely benefit from using it, so
what you see here is the result of me diving in the deep end ;-)

I've dropped multiprocessing support in the decompressor for now to
simplify things, but there's no reason it couldn't be added back in
again later.

This is performing far better in terms of overall processor usage than
my old implementation, though my multiprocessing implementation does
complete a large (4096x4096) image faster in terms of wall clock on a
>= dual core system (the way I'm copying pixels to the output image here
is a bit slow and probably more prone to cache misses due to the larger
buffers - I feel like there's probably a better way to do it, but a
couple of things I tried turned out to be even slower). Adding
multiprocessing support back in would no doubt improve this well beyond
the old implementation.

For a 1024x1024 image on dual core Linux this significantly outperforms
the multiprocessing implementation in every way, even though it's only
using half the CPU - and this effect will probably be magnified on
Windows due to eliminating the multiprocessing overhead suffered there.