allow parameters for restart effector, including children and the machine for SoftwareProcess.restart;

if this model is sensible i'd like to apply it more widely to effectors, to allow parameters to tune behaviour.
(eg for stop, to allow controlling whether it is the machine or just the process which is stopped,
and on start, to allow forcing reinstall)
I see this pattern used frequently but find it quite confusing. Why is the extra class of indirection (`*EffectorBody`) useful? So classes can replace `impl` with a class that acts on `parameters`? Why are those actions best done in an `EffectorBody` rather than the true effector method itself?

Line 69 calls:
 ```new MethodEffector<Void>(Startable.class, "stop").call(entity(), parameters.getAllConfig())```
Where is the definition of `stop` with a `Map<String, String>` argument? Or will the no-argument method be called magically?