Refactor game2048 using strict updater style.

Using updater style allows me to supply input/output components in a functional
way. The primary cost is the use of an enhanced synthread for syntax support.

Also, fix a couple logic bugs along the way.
Add synthread dependency. Minor clean code clean up.