Convert Scheduler to C++

Hi,

The design for converting the scheduler to C++ can be found here

Please review and leave comments if necessary.

Thanks,
Vincent

This design also says the header files for cpp will be .hpp

The header file extension will be a part of the guidelines.