PlaneSeparator: synchronize caching sections

There is significant use of cached planes that follows the test for
cached planes. This option really needs to be atomic.. if we find a
cached plane, we need to ensure that it is the one used later, and we
can not check for cached planes until we have finished updating the
cached info.

It would be nice to figure out how to optimize this code, as I think
just blanket serialization here may be bad. But it does seem to be
necessary given the current implementation.