Backward compatible API defaults to mesh_dimension()
In preparation for use by PointLocatorTree. Note I've preferred to keep implementations separate from the header where putting in the header would require the inclusion of mesh_base.h.
Old API is preserved for backward compatibility. Note that the behavior of the PointLocators hasn't changed yet, just the API. I have at least included checks on the element dimension so if someone manages to use this commit, they'll still get an error. Note I put the old API implementation in the source instead of the header to avoid including mesh_base.h in the PointLocatorBase header.
We'll do more with this later, but for now, setting this up to make sure we don't muck up the behavior of PointLocator as the API gets adjusted to support mixed dimension meshes.
Before, the cached distance used the distance from the first element in the list. But, the loop didn't include the first element so if the first element was the closest one, we didn't detect it and the accompanying unit test failed. I put the unit test in the mixed dimension unit test because this bug was found as part of some refactoring I'm doing and I went ahead and made this bug fix standalone.
When we hit set_node_processor_ids() in a skip_partitioning() codepath after doing enough coarsening, we may legitimately be in a state where orphaned nodes still exist but don't still have valid processor ids. The best thing to do in the long term may be to reorder the deletion of orphan nodes so as to avoid this state, but that's tricky to do, so for now we'll just remove the assertions that are giving us false-positives.
…underlying Nonlinear Solver package