added command history

The animated gif needs updating but we should wait until things stabilize.
Now that I think of it, it would be easier all around if `LogEntry` were its own class. Then the logic for creating an entry from an event can be encapsulated there and separated from the code that maintains the log itself.