

Notes so far:

 * On top of io::{BufRead,Write}, we build llconn::{Reader,Writer}.  Reader is a tiny wrapper; Writer validates the
   syntax of outgoing messages.

 * On top of them, we build conn::RpcConn.  This is the one I expect most users would want; it
   matches requests to responses and assigns IDs as needed.

 * I'm not using tokio or async at all.  I'm trying to keep dependencies to a minimum.

 * I am *not* following our usual practice with Display on errors; instead, I am including
   inner errors in the Display implementation of the outer errors.  The rationale here
   is that we probably just want to return a single string for FFI purposes.


 Coming next:
 * [x] clean out the X X X Xs
 * [x] diziet's revisions on connimpl.
 * [x] actual implementations for making connections.
 * [ ] More tests.
 * [ ] update this readme.
 * [x] interface for connecting to arti
 * [x] Initial C FFI wrappers.
 * [ ] C FFI wrappers for everything reasonable
 * [x] enable the usual warnings.
 * [ ] Finish this readme.
