An implementation that describes a rectangle, like java.awt.Rectangle, but
1) purely mathematical, does not depend on java.awt, so can be used in GWT
or other environments where dependency to AWT is not allowed.
2) Immutable implementation, so if it is stored in a structure, a client cannot
gain access to this rectangle and change its properties.
3) Add additional methods not implemented in java.awt.Rectangle.