Error estimator compatibility fixes

This is still in mid-testing, but it should be ready for perusal and (cross fingers) should be safe to commit once testing is done.  Instead of requiring a Communicator argument to the ErrorEstimator constructors we now only require a Communicator argument to the protected reduce_error() method.