Serial REPL

Manage all serial reading/writing directly so that we can be sure to manage the REPL state machine and not intermix any evented bridging output.