refactors the way contenteditable is used

Whenever I fixed a bug in one browser it broke another
browser, so I made a whole new solution, making spans
contenteditable and baking them into the fields when
they are created and updated.  Contenteditable labels
do not perform well in Safari and Firefox, but the nested
contenteditable spans inside the labels seem to work.

Also, I made each field input start with a name value
of 'Label goes here' so that inputs don't need to be
edited to get a name value, so you don't end up with
a value that doesn't get submitted in a test form wher
the labels haven't all been modified.

Finally, model.updateValues is generally only called
if a contenteditable field is not in focus, so that
the cursor is not unnecessarily moved while the user
is typing.