fix: split vector programs in three versions to support unaligned images

images that had a step that is not a multiple of the vector width were not handled properly

Closes #6
fix: consider all images when choosing vector program version

we were only checking the first input image when looking for the vector version to use
if a "flush" image was given as first image and a non-"flush" image as second image, the "flush" version of the program would be used, leading to wrong results

Closes #5
fix(Bench): a few minor fixes in the Bench program
test: add tests for Blob in Bench program
fix: use a sane source image for inverse FFT test

We were using a random image as input for the inverse FFT transform test, which is not a realistic input.
We now take a random image and do a forward FFT to it and use that as input for the inverse FFT test, which makes more sense.

Closes #4