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.
"its input value", or, better, just "its value" (that is, the value of its `value` property)?
What isn't very clear here (to me) is whether widget.value == widget.input.value per contract. Maybe not, since the `value` attribute of the `input` element is only the initial value (per HTML spec), while widget.value changes according to interaction. Anyway, might be worth further clarification.