Add timetabling and subject block models

These still don’t work all that well at this stage, so don’t reference
them yet, putting them here to consolidate work