Rewrite flip, flop, flipflop

Rewrite flip, flop, flipflop: do them with respect to display window.

It really doesn't make sense to do these transformations within only the data window. These operations should be with respect to the display window. Thus, we now follow the principle that "any operation on a shrink-wrapped image should have the same result as doing that operation on a non-shrink-wrapped image." (Shrink-wrapping means reducing the data window of an image to include only the smallest rectangle containing all of the non-black pixels. It's a data reduction technique, but should not change the semantics of the image operations.)

New tests ensure that it works for crop windows (i.e. differing display and data windows).