Improved consistency of clone methods on geometry classes

I noticed there was some inconsistency between the various Geom classes clone methods.

I added a clone function to both the Line and Polygon classes, then I made sure all the function signatures and argument checks were the same.

I also tidied up the Polygon class slightly by using the setter logic in the constructor instead of duplicating code.