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