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.
It's a good question. I wasn't sure what the best way to handle returning results and/or errors from a goroutine was. This thread has a couple options (https://groups.google.com/forum/#!topic/golang-nuts/cTrBcyjqCxg) one of which is the two channels approach I took.  If others have better ideas I'm open to them.