Rewrote polymer data binding

We now use polymer-boxes.js to provide a generic implementation of the
observe function, and the function called by the server to set new data
into elements. This considerably reduces the boilerplate in the element
itself - it should be possible to reduce this further with more code in
polymer-boxes.js