debug: recorder: use a different observer object for each system
debug: split observer API into preProcess() and postProcess()
implement Debug::Timer, optimize Debug::Recorder API for timing

At this moment, Timer is only implemented for POSIX systems.