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

Per Ayende Rahien, 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.
Merge pull request #192 from benbjohnson/read-full

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