message: Bugfix: Resolves in/out ambiguity for grazing triangles in InOutOctree
  Resolution was via inflating the bounding box slightly more during in/out check
  than during triangle/bounding-box intersection check.
diff: #include <unordered_map>
  #define DEBUG_VERT_IDX -2 // 1160
  -#define DEBUG_TRI_IDX -2 // 1654
  +#define DEBUG_TRI_IDX -2 // 187820
  #define DEBUG_BLOCK_2 BlockIndex::invalid_index()
  -// BlockIndex(GridPt::make_point(0,0), 1)
  +// BlockIndex( {1346,1972,1691}, 12)
  #define DEBUG_BLOCK_1 BlockIndex::invalid_index()
  -// BlockIndex(GridPt::make_point(0,1), 1)
  +// BlockIndex( {336,493,423}, 10)
  #ifndef DUMP_VTK_MESH
  // #define DUMP_VTK_MESH
  @@ -75,8 +75,7 @@ class InOutOctreeMeshDumperBase;
  /**
  * \class
  - * \brief Handles generation of a point containment spatial index over a surface
  - * mesh
  + * \brief Handles generation of a point containment spatial index over a surface mesh
  *
  * The point containment queries determine whether a given arbitrary point in
  * space lies inside or outside of the surface. This class depends on a
  @@ -1113,7 +1112,7 @@ typename std::enable_if<TDIM == 3, bool>::type InOutOctree<DIM>::withinGrayBlock
  // produces an empty polygon. To resolve this, clip against a
  // slightly expanded bounding box
  GeometricBoundingBox expandedBB = blockBB;
  - expandedBB.scale(m_boundingBoxScaleFactor);
  + expandedBB.scale(10 * m_boundingBoxScaleFactor);
  poly = primal::clip(tri, expandedBB);
  