Clamp position to rectangle in interpolateHeight.

sampleTerrain works by computing the tile that contains each of the positions it is sampling using `tilingScheme.positionToTileXY`.  For a position very near the edge of a tile, it is possible for this method to return a tile that does not actually contain the position (e.g. latitude is one ulp greater than the north bound).  I considered trying to avoid this, but doing so is tricky and a bit expensive.  So instead, this change clamps the coordinates coming in to `QuantizedMeshTerrainData.interpolateHeight` to be within the tile.

Fixes #2206