Rename EventSource to EventDispatcher

Apparently EventSource is reserved on some browsers (e.g. Chrome
on Android) because of http://www.w3.org/TR/eventsource/
Fix solution cheating

* Do not keep solution when showSolution() is called multiple times.
* Disable interaction when solution is shown.
Show solution for 2 seconds
Animate magic wand while showing solution
Refactoring