added client-based worker interface

This change involved refactoring the command flow in
`switchboard_jmap`.