2D Bounding Spheres

For #1539. This also fixes #1248.

Uses the xz plane as a splitting plane when geometry intersects the IDL creating multiply geometries in the east and west hemispheres with better fitting bounding spheres. Also uses the projected points to compute the bounding sphere instead of `BoundingSphere.projectTo2D`.

This also partially fixes #1552. Frustum culling is now correct in Columbus view and 2D. However, in 2D, the geometry is failing the depth test.
The change in return value is a break change, right?

For deprecation, should `GeometryPipeline` even be public?