Implement operator== and hashCode for Rect.

I've implemented equality and hashCode operations for Rect. I wasn't sure if it was better to compare based on top/left/bottom/right, or pos/size, but went with pos/size because those are externally visible (It would be pretty crappy for `r1 == r2` to be true but `r1.x == r2.x` not to be).

The downside of this is that now two Rects might contain an identical set of points (err, Vecs), but not compare as equal.

I have tests for the operator== but not for the hashCode because I'm not sure it would make sense to test hashCode.