full working ARQ example for client and server

The previous example was a bit one sided where the
client performed ARQ operations and the server just
echoed the data.

The example has been changed so that now both the server
and client must perform ARQ operations to make the data
transfer reliable.  The server is also no longer just
an echo.  Now it takes a file name and then returns the
data for that file.

This is a much better example of how ARQ works than
the previous limited example.