Add in the 'sortable hash' using tsort. Fix failing tests

Add Rubys tort module to a hash subclass. This will allow future enhancements to allow multiple job dependancies and raise the required cyclic exceptions when fleshing out the scheduler.