Ref corerunnable

Major refactor of the CoreRunnable interface. I've integrated the changes throughout the codebase, and all tests are passing with no noticeable difference in running time for the test suite.