macos:  Factor out set_rect_region()
macos:  Zero the bounds in SetRectRgn() if empty

This behavior is documented in Inside Macintosh.
macos:  Add _EmptyRgn trap
Merge branch 'EmptyRgn'