ssh commands display as tasks, and streams available in GUI

builds on #874 so that you get a task hierarchy for software processes, and it displays nicely in the gui, and makes the ssh streams available

there is an increased risk of OOME due to storing the streams; is it worth using a weak reference there do you think?

also this may have damaged task/entity gc -- most things are okay but there is one failing test i haven't been able to fix (and have marked disabled, for now, so i could build, but we should fix it asap!) -- EntityExecutionManagerTest.testUnmanagedEntityCanBeGcedEvenIfPreviouslyTagged -- any advice/help there is appreciated!