reimplement/fix dimRect() and lightenRect()

dimRect() and lightenRect() did assume that 0=white, 15=black
(old 4bpp inverted colors), thus did work the other way around.
Fix this. Drop the pixel dim/lighten methods, rather use a
blend with WHITE and (by default 50%) alpha.

The lightenRect() method changed in its inner workings by this
patch. Before, it applied a minimum value, leaving bigger
values untouched. Now, it is blending, i.e. making an alpha
blend with black (yes, black, not white, see below).
That reduces code footprint, and may look slightly better, too.

TODO: rename this methods. They do exactly the opposite as what
their names suggest.