Implement start, stop and restart methods.

Once we had agreed on the restart logic, the simplest thing to do was to generate the all methods based on that logic.

TODO: Add stop-sleep-start methods.
The `enable` and `disable` methods have an extra option that is not relevant for `restart`.  Sometimes we want to use the `-t` option, which means _temporarily_ enable or disable the service, but the original setting will be restored upon reboot.  We'll need CAF to allow us to specify this option too.