Added Run-Length Encoding & arraymap()

It just dawned on me that Huffman Coding and Run-Length Encoding can be
coded completely separately from one another, and so I've whipped up and
mixed in a functional RLE compressor.
I've also added some comments at the end of each 'stepping stone' to
help keep things clear.
In doing so, I got sick & tired of not being able to just map()
functions to the elements in an array, so I wrote a flexible recursive
function to do that for me. Cleans up the DCT code quite a bit.