raft: make snapshot a protobuf type

please keep this. do not move the method of snapshot into log. 

we might combine *.pb to one pb file in the future if we feel there are too many files.