Added cancellation of LR execution functionality

@lukechurch
Few points I have regarding the following:

1. Do we really need to throw an exception here? I'm trying to figure out if we simply return to the caller during a cancellation, what would be the side effect?

2. Since ```CancelExecution``` is required here in the ```Executive", why are we not putting it here instead of inside the ```Core"?

3. The exception is not named like an exception, I would expect it to be ```ExecutionCanceledException".