fix(validation): use ng-model-options and $dirty to control when validation occurs

Previously, validation was changed to use $touched to trigger validation on a field as soon as it received a blur event. When the popover was closed, it caused the first first focused field to display a validation error which was unexpected. This changes the popover validation back to using $dirty. It also allows users to customize their validation behavior by using ng-model-options.