Default repl to core namespace
Refactor: hide work loop channel behind a process channel

Also makes the display function put messages on the speaker channel
asynchronously. It shouldn't ever block, but this is probably a better
design.