Change RaftLog to be an interface; MemoryLog is now the in-memory implementation

This will make it possible/safer for other implementations to store
entries differently (for example, in mmaped regions).