Update sk-config example applications to show serial-to-serial communication

This change adds a third cell and refactors the system so that user
input originating from UART2 on the Sabre Lite is read by cell 1,
processed (and potentially modified) by cell 2, and emitted by cell
3 on UART1.
Yes, this logic is to detect skipped sequence numbers, although that's only one kind of loss. The other isn't detectable: cell 3 reads `ch`, cell 1 runs and updates `ch` and `next`, and then cell 3 reads `next`. It finds that `next` is the next expected sequence number but `ch` is stale, leading to duplicate characters.

I haven't played with `scheduleRate`, but it seems to me that even running cell 3 more often just reduces the chances of data loss since interleavings like the one I described could still happen.