Content-aware resize: large memory reductions

On a 1600x1200px image, here's a comparison for peak memory usage when
applying a content-aware shrink to 1200x1200, then a second
content-aware grow back to the original 1600x1200:

Old code: 84.9 mb
New code: 101.4 mb

Considering that baseline memory usage for the program + loaded image is
~50 mb, that's a 30-40% memory reduction for the tool itself.  Yay!

The big change involved replacing a DIB-centric energy mapping function
to a byte-array version.  This not only opens up the possibility of some
cool new quality improvements, but also drastically cuts memory usage.

I had hoped it would also improve run time for the function, but for
reasons I don't understand, it improved vertical seam-carving time while
hurting horizontal seam-carving time.  Odd.  This could be the result of
replacing some instances of BitBlt with CopyMemory (maybe horizontal
BitBlting is faster?), but I'll do some extra investigating to see if I
can't offset the difference...