Refactor into library

This change refactors the oplog-replay code into a library. It's mostly just moving around code / updating the Makefile and README.md. It exposes an interface to replay the oplog (io.Reader, speed, host) which is what I'm using right now in my initial code for the oplog-replayer (worker) so I know it's not completely unreasonable, but we may have to revisit the interface while we do that.

I also did some minor refactoring so that the library never calls panic - it only returns errors.
When does `timedOpsReturnVal` get closed? Also, why is it buffered?