With this patch we require the user to set the scheduling direction during construction. The direction used to default to BottomUp which would cause crashes if the user had forgotten to set the direction and attempt to scheduler top-down. Also drop Scheduler::setDirection() as there is no longer a need for it.