A terminal multiplexor with client-side caching and local echo prediction