Remove mutables from Propagators

Changed the propagator interface so most methods are non-const so
we no longer need mutable members. This avoids thread-safety issues.
Updated to match new Propagator interface

Most of the methods of Propagator are now non-const. This change
aligns these classes with this new interface.
Failed to call thePropagatorWatcher

When modifying the code to match the new Propagator API, I created
a ESWatcher but failed to call its 'watch' function. This lead to
a crash in the job.
fix clone method and copy constructor