Refactor schedules

* subclass RainwaveSchedule with RainwaveElection (more to come!)
* subclass RainwaveSong with RainwaveCandidate