Promise-based validations & Multi-stage validation API for ngModel