reader which sends output text to TextWriter (warning: call will be made from background thread)
base class for text reading from std.stdio.File in background thread
runs external process, catches output, allows to stop
protected text storage box to read and write text from different threads
for executable name w/o path, find absolute path to executable
interface to read text
interface to forward process output to
taken from https://github.com/buggins/dlangide/blob/master/src/dlangide/builders/extprocess.d module dlangide.builders.extprocess;