Support changing call-collect's schedule while running

Now that enterprise has the needed changes to not raise a programming error if we try this, it's time for the core half of the change, to actually exploit the back-end's ability to notice a change in report collection interval.
At the same time, tidy up StartServer(), as it was getting rather hairy().
Best reviewed one commit at a time !