Watch input ngModel controller rather than scope for validity, with a $timeout for empty fields to be removed. Enforces validity on the last input field to avoid any issues with validation lingering from when an item was removed.