srm: refactor SchedulerFactory

This patch modifies SchedulerFactory so it has a single concern: creating
Scheduler instances.  The additional behaviours of creating all necessary
schedulers and maintaining a collection of schedulers are moved elsewhere.

Creating all necessary schedulers has moved to the SRM class.  Ultimately
this should go into the spring XML file, but I didn't want to do too much
in one patch.

Most of the behaviour associated with multiple schedules has moved into
the new SchedulerCollection class.  The current code has the Job classes
being responsible for adding themselves to a scheduler.  To try to keep
the patch short, this mode of operation is maintained; however, Job is
supplied with a Scheduler, rather than discovering the scheduler itself.
This is a first step towards decoupling the scheduling of jobs from the
jobs themselves.