Re #8360. Add valgrind suppression file for Geometry unit tests.

OpenCascade uses some kind of custom memory allocator (see for example
http://opencascade.blogspot.com/2011/06/is-my-memory-leaking-part2.html)
that doesn't play nicely with valgrind. I don't think that there's a real
leak here, so we want to squash the complaints.
Re #8360. Make sure that the logging framework is shut down.

This line ensures that the logging framework is fully shut down and all
objects cleaned up after the unit tests have run. Removes a lot of
(somewhat spurious) reported memory leaks.
Re #8360. Use an std::vector rather than a C array.

Doesn't leak like the old way did as it wasn't being cleaned up at all.
I'd be surprised if there's any significant impact on performance.
Re #8360. Be exception-safe.

Previously, the Plane objects would be leaked if setPlane threw an
exception.
Re #8360. Suppress reported leaks from SurfaceFactory.

I don't think that these are really leaks, it's just that they are owned
by the static SurfaceFactory instance.
Implement copy and assignment operators for Vertex2D

Refs #8360
Implement copy and assignment operators for Quadrilateral.

Quadrilateral specialies ConvexPolygon to avoid heap allocations
so the copy and assignment operators need to be aware of this.
Refs #8360
Fix memory leaks in LaszloIntersection code.

This only affected the cases where exceptions were thrown.
Refs #8360
Add null ptr check to deleteChain

Refs #8360
Remove unnecessary deleteChain call.

The code is structured so that curIntersection will never have been
created if no overlap occurs.
Refs #8360
Merge branch 'bugfix/8360_geometry_memory_leaks' into develop

Conflicts:
	Code/Tools/Valgrind/GeometryTest.supp
#
# It looks like you may be committing a MERGE.
# If this is not correct, please remove the file
#	.git/MERGE_HEAD
# and try again.
#

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch develop
# Changes to be committed:
#
#	modified:   Code/Mantid/Framework/Geometry/inc/MantidGeometry/MDGeometry/MDPlaneImplicitFunction.h
#	modified:   Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/Quadrilateral.h
#	modified:   Code/Mantid/Framework/Geometry/inc/MantidGeometry/Math/Vertex2D.h
#	modified:   Code/Mantid/Framework/Geometry/src/MDGeometry/MDPlaneImplicitFunction.cpp
#	modified:   Code/Mantid/Framework/Geometry/src/Math/ConvexPolygon.cpp
#	modified:   Code/Mantid/Framework/Geometry/src/Math/LaszloIntersection.cpp
#	modified:   Code/Mantid/Framework/Geometry/src/Math/Quadrilateral.cpp
#	modified:   Code/Mantid/Framework/Geometry/src/Math/Vertex2D.cpp
#	modified:   Code/Mantid/Framework/Geometry/src/Objects/ShapeFactory.cpp
#	modified:   Code/Mantid/Framework/Geometry/test/CMakeLists.txt
#	modified:   Code/Mantid/Framework/Geometry/test/LaszloIntersectionTest.h
#	modified:   Code/Mantid/Framework/Geometry/test/QuadrilateralTest.h
#	modified:   Code/Mantid/Framework/Geometry/test/Vertex2DTest.h
#	modified:   Code/Tools/Valgrind/GeometryTest.supp
#