Fix remove control

This PR fixes some issues with manually removing and adding controls from forms:
1) Validity changes in removed control do not effect form validity
2) Validity of existing control is taken into account when adding control to form

Closes #9035 
I don't expect it to have a significant impact, but wouldn't it be better to "cache" the `parentForm` outside the `forEach` loops:

    var formCtrl = ctrl.$$getParentForm();
    forEach(stateMap, function(combinedState, key) {
      forEach(ctrl[key], function(value, validationErrorKey) {
        formCtrl.$setValidity(validationErrorKey, combinedState, ctrl);
      });
    });