Don't use allocations inside Point and Rect

Instead, use boolean validity flag, which is much more practical
Add basic Point arith