Refactor code so that it can be used a library

In particular I put the main function in the cmd directory which follows
the standard go model for directory organization.

I also moved the replay logic into its own directory / package. I made
its interface (io.Reader, speed, host). It's not completely clear if we
want all callers to specify speed / how we want to do that in other
cases, but I figure we can cross that bridge when we get there.

Change the way we propogate errors a bit so that the library portion
doesn't throw panics.
Update the Makefile to model the new directory structure
Update the README with new info on how to use / run the code