major refactor

Wanted to write a blog post walking through the code for the TodoMVC app, but in the process I ended up refactoring it quite a bit. Partly it was just modernising the Reflux code, but I also tried to simplify the flow and make it less opaque.