rewrite api doc for FormWidget and FormValueWidget, fixes #18363

cc @AdrianVasiliu 

Hopefully this addresses all the points you brought up.  You can add some inline comments if you see places for further clarification.
From that, the reader understands that a subclass of FormValueWidget should always fire a "change" event - at different moments depending on the behavior of the widget, but at some point it should fire it (at latest, when the control loses focus). 
On the other side, the pointed doc (https://html.spec.whatwg.org/multipage/forms.html#common-input-element-events) says: "if manipulating the control changes the colour interactively, then there might be no commit action". This *might* mean that firing "input" is mandatory, while "commit" shouldn't be fired in some cases. Would be nice to clarify, if possible.