Add LegacySurface::setTransparentColor()

Now that we're using SDL blitting operations, we can take advantage of
semi-transparent surfaces. This should result in less maskCopy() usage,
and fewer temporary surfaces in general.