one-shot-executor is an alternate approach to slave allocation, relying on a 1:1 lifecycle between build and slave running it. Current implementation relies on hacks and implementation details.
- expose Computer #removeExecutor to subclasses so they can remove the slave just as the executor has completed the build.
- Let Run create the log's BuildListener before the Computer has been started, as same log will host slave launcher log and build log.
Point 2 require to change the way StreamTaskListener do handle encoding. Current design is to rely on build slave default encoding, which require access to computer to get this information. Forcing conversion to UTF-8 as the log is collected for storage on master would avoid this and let us release this lifecycle dependency between BuildListener and Computer.