* Boxes.elm: now possible to dynamically update the labels of boxes

- some code cleanup and reorganization
- change Box representation to just include a label, not a whole Element
- add representations for States and Events
- add an input box to allow user to relabel currently-active box

Things I learned: the limitations of foldp.

1) foldp requires a pure value for initialization...so you can't
create a past-dependent signal using an existing signal to initialize it.

2) Thus, one of the necessary reorganizations was moving the foldp
that produces the past-dependent signal representing the state of the
list of boxes higher up in the signal dependence graph.

3) I also found it necessary to introduce an Event type to encompass
the different kinds of input the user might generate.  This allows
merging the different kinds of input into a single signal of Events,
which can then be the input signal to the foldp which updates the
global state based on events.  (A unified Event type is needed because
foldp only accepts one signal as input, whereas different user events
produce different types of values, and the state should be updated
whenever any one of these values changes.)
* Boxes.elm: cleanup for final version

- remove clicks and label from State representation, since Event takes
  care of that now
- update labelField contents using the label of the active box
- remove other dead code