This commit splits core into it's scheduler/IPC part and into other code that is either used or uses the scheduler, through defined APIs.