Implements a prepl on in-reader and out-fn by forwarding to a remote [io-]prepl over a socket. Messages will be read by readf, a fn of a LineNumberingPushbackReader and EOF value or a symbol naming same (default #(read %1 false %2)), :ret and :tap vals will be processed by valf, a fn of one argument or a symbol naming same (default read-string). If that function throws, :val will be unprocessed. Alpha, subject to change.