Accelerate - No faster, not parallel

This is the same algorithm rewritten using the Accelerate framework. It is only single threaded and performs the operation as a big block which means that the locality of memory access is lost and it doesn't even perform significantly better than the single threaded original. There may be a way to break the problem into blocks for better performance. Run in Ounchecked for best case.

It does have one cheat that the horizontal wrapping isn't quite aligned matching a left column pixel to the right column pixel on the line above to avoid special casing all but the top left and bottom right pixels.