03: Fix ==, eql? and hash for rectangles

So that two rectangles defined with different diagonal corners are the
same.