Implement Format80 RLE compression

Makes the SHP writer a little smarter and the files produced a lot smaller.

This doesn't use all the encodings available but it's probably enough to close #5295.
You're only using `blockLen` once, so you can avoid the unnecessary scoping here and below by using `offset - blockStart` inline.