Point Equality and Hashing

Points with the same components are now equal and have the
same hashcode. Also added factor methods for 2D GeneralPoints