Perpetuation!

By default, Kyou won't self-perpetuate.  But there are new flags
that let you choose how to do this.

perpetuateInRun: this will make the Kyou try to scheduleBatch()
itself right after trying to fill the batch apex slots.  This will
make the run() frequency more consistent (within the play of batch apex
runtimes).  The downfall is that it pretty much always eats up a
scheduled apex slot.

perpetuateInFinish: this will make the Kyou try to scheduleBatch()
itself after running the implementation's finish().  This probably doesn't
do anything important, and right now I'm not sure why I wrote it.

drasticMeasures: if while trying to scheduleBatch() itself, the Kyou finds
that there are no scheduled apex slots left, this flag will make the Kyou try
to executeBatch() itself right away.  If false (which is the default), perpetuation
halts, and an exception is thrown.

The Schedulable class now uses scheduleSelf() instead of run().  run() is now private.

To do: allow a way to set the scheduleBatch() delay in minutes.