Refacto board.dart. Add a snapshot.

Let me know what you think if you find it understandable.
I think it's more interesting that attendees mostly work on the HTML part of the component, and some of the  "back" code like fields and click handler. So we can provide most of the complex code.