entry: break out time, level and message from data

Replaces #33 and fixes #44.

Please review @aybatme
> The comment should start with `Entry ...`
> _Golint_