Fix error handling, also migrate to go1.3

tangential: it seems like the synchronization in `oplog-replay` is getting pretty complicated now. I wonder if there's a better way to structure the library as a whole, instead of working within the constraints of the existing structure?