While this increases the verbosity level of `Fork.run()`, it remains
consistent with `Run.run()`. Switching between `fork := false` and
`fork := true` shouldn't change verbosity of log output.
- interrupts task execution only
- no further tasks scheduled
- existing tasks interrupted
- a task must terminate any other started threads when interrupted
- set cancelable to true to enable
- currently, 'run' properly terminates if the application properly
terminates when interrupted
- 'console' does not, 'test' depends on the test framework
- also bundled: set connectInput to true to connect standard input to forked run