Subsystems are encouraged to either typedef themselves as appropriate
`JobManager` instances for their job type, or wrap a `JobManager`
instance and delegate the `Subsystem` impl. In both cases, we want
to use a sensible, non-repeated subsystem name for appropriate
logging and debugging.
This PR adds a heuristic: if the job name ends in the literal
"Job", then that gets stripped. Otherwise, the job name is used.
This improves on the previous situation, in which subsystems
typedef'd to or wrapping `JobManager` all got the same constant (!)
name.