[#1053] Ensure we always have an id so we can link form element to label

* exceptions are radio_nested and checkbox_nested (don't need a label to
  associate the form element with the parent); hidden, submit (label not
  applicable)

* remove unneeded ids which were there only to associate the form
  element with the label (doesn't include js-* ids, ids used to provide
  a description via aria-describedby, etc)
Fixes #1053.