Add recorder module (CSV only for now), one-shot TestObserver, tweak Encoder