Make the default updateLabel method less opinionated

The updateLabel method is extremely opinionated about the location of the label relative to the form element.

Rather than assuming that the previous element is a form element's label, we should explicitly check the label's for attribute matching the form element's name.

For API compatibility reasons, we may want to keep the existing prev check in an elseif.