compiler: OutputGenerator added

wraps output stream and keeps indent and stream to indent in one place