Make scheduler_driver configurable

Add the option to configure the scheduler_driver. No scheduler_driver will be configured if none is provided to preserve backward compatibility.

This changeset also adds more tests for the cinder::scheduler class.