Change LogEntry.Decode() to use io.ReadFull()

Per @ayende, a log entry can be partially read which could cause corruption or data loss. This changes the read to ensure that the expected number of bytes are read.

Fix: #191

/cc @xiangli-cmu