FormValueWidget: don't fire change event unless user actually changes the value

This is for the corner case when the user (for example) drags the slider handle
but drags it back to its original position before mouseup.

This handles the case when the widget value was set programatically sometime after
startup(), and also the case when the value is computed asynchronously after the startup()
call.

Refs ibm-js/deliteful#199.