Add `vtkm/Geometry.h` and test it.
This commit adds several geometric constructs to vtk-m
in the vtkm/Geometry.h
header. They may be used from
both the execution and control environments.
It also adds methods to perform projection and Gram-Schmidt
orthonormalization to vtkm/VectorAnalysis.h
.
See docs/changelog/geometry.md
included in this commit
for more information.