Encoding board state in location.hash

Kinda went down a rabbit hole with this one and ended up re-writing a fair share of it.. hope you don't mind!
The key idea is to store the buttons divs in a `@buttons` array on the `ButtonBoard` with a new `Button` wrapper class that keeps some other properties (the on state etc.)

One thing I don't like here is that certain concerns started getting moved into the ButtonBoard out of soyuz (eg. the "on" state for each button). Maybe there's a new model needed in between.. ?

Anyways -- whaddayathink?

(for issue #1)