Previously, mosh used extensive -I flags and all of the mosh-local
makes it really hard to tell what the proper dependency graph is, so
instead remove the -I arguments in favvor of $(top_srcdir) and qualify
the paths wherever they are used.
The root problem here is that writes to the frame buffer may alter it,
but leave it with the same contents as before, and the diff between
the two states is the empty string. With the dirty-rows,
smart-pointer changes to Framebuffer, it is easy to run into this
situation. This got Network::TransportSender confused about timeouts,
and mosh-server would spin.
The theoretically correct fix would be to have operator==() exactly
correspond to diff(otherstate).empty(). I have partly implemented
this (and may yet finish) but it's not trivial to get right.
This is a much simpler fix that simply attempts to correctly update
timers when two framebuffers are different and an empty diff is
generated.