refactor(async_pipe): use subscription strategy interface
refactor(async_pipe): use subscription strategy interface

The strategies for Promise and Observable based subscriptions
have (nearly) the same method signatures. They should implement
a common interface.

Closes #7573

zhura/angular,panuruj/angular,sarunint/angular,IgorMinar/angular,vsavkin/angular,nosovk/angular,dsebastien/angular,vicb/angular,ollie314/angular,chalin/angular,pk-karthik/framework-js-angular,dejour/angular,kara/angular,angularbrasil/angular,angular/angular,manekinekko/angular,dejour/angular,mdegoo/angular,rkirov/angular,mhevery/angular,angularbrasil/angular,SaltyDH/angular,mikeybyker/angular,smartm0use/angular,not-for-me/angular,diestrin/angular,rkirov/angular,nosovk/angular,laskoviymishka/angular,matsko/angular,ocombe/angular,smartm0use/angular,snaptech/angular,snaptech/angular,wKoza/angular,gdi2290/angular,LucasSloan/angular,sjtrimble/angular,dtoroshin/n2oDoc,ValtoFrameworks/Angular-2,hansl/angular,LucasSloan/angular,itamark/angular,mzgol/angular,jasonaden/angular,wKoza/angular,SaltyDH/angular,awerlang/angular,vsavkin/angular,tycho01/angular,zhura/angular,matsko/angular,vicb/angular,asnowwolf/angular,AlmogShaul/angular,ocombe/angular,NathanWalker/angular,mlaval/angular,asnowwolf/angular,royling/angular,brandonroberts/angular,templth/angular,asnowwolf/angular,graveto/angular,graveto/angular,mdegoo/angular,mdegoo/angular,kara/angular,dsebastien/angular,aboveyou00/angular,mprobst/angular,Toxicable/angular,chrisse27/angular,meeroslav/angular,Toxicable/angular,tolemac/angular,SaltyDH/angular,heathkit/angular,mlaval/angular,awerlang/angular,mgechev/angular,NathanWalker/angular,mhevery/angular,juristr/angular,cironunes/angular,snaptech/angular,awerlang/angular,LucasSloan/angular,graveto/angular,rjamet/angular,mprobst/angular,gnomeontherun/angular,alexeagle/angular,angular-indonesia/angular,vicb/angular,dtoroshin/n2oDoc,robwormald/angular,mlaval/angular,blesh/angular,chrisse27/angular,souvikbasu/angular,alamgird/angular,JiaLiPassion/angular,StephenFluin/angular,jesperronn/angular,Mathou54/angular,cironunes/angular,vandres/angular,robwormald/angular,blesh/angular,alamgird/angular,royling/angular,Mathou54/angular,brandonroberts/angular,aboveyou00/angular,ghetolay/angular,ocombe/angular,UIUXEngineering/angular,matsko/angular,sjtrimble/angular,JanStureNielsen/angular,meeroslav/angular,StephenFluin/angular,alamgird/angular,pkozlowski-opensource/angular,ollie314/angular,ScottSWu/angular,vicb/angular,youdz/angular,JiaLiPassion/angular,gkalpak/angular,mhevery/angular,Toxicable/angular,chajath/angular,IdeaBlade/angular,hterkelsen/angular,hterkelsen/angular,SekibOmazic/angular,hansl/angular,gjungb/angular,Toxicable/angular,laskoviymishka/angular,not-for-me/angular,tycho01/angular,rjamet/angular,kylecordes/angular,mlaval/angular,Flounn/angular,dsebastien/angular,tolemac/angular,juleskremer/angular,kara/angular,shairez/angular,heathkit/angular,mhevery/angular,alexeagle/angular,jesperronn/angular,sarunint/angular,juleskremer/angular,dejour/angular,jonrimmer/angular,gnomeontherun/angular,gkalpak/angular,mgiambalvo/angular,vandres/angular,aboveyou00/angular,jonrimmer/angular,JiaLiPassion/angular,trshafer/angular,ultrasonicsoft/angular,ocombe/angular,chuckjaz/angular,snaptech/angular,xcaliber-tech/angular,chalin/angular,brandonroberts/angular,smartm0use/angular,chajath/angular,pkozlowski-opensource/angular,kwalrath/angular,ValtoFrameworks/Angular-2,angular/angular,hansl/angular,mikeybyker/angular,wKoza/angular,cironunes/angular,shairez/angular,shairez/angular,snaptech/angular,chuckjaz/angular,kara/angular,laco0416/angular,Brocco/angular,hansl/angular,gdi2290/angular,kylecordes/angular,chalin/angular,mgol/angular,petebacondarwin/angular,ghetolay/angular,sjtrimble/angular,mzgol/angular,alfonso-presa/angular,chrisse27/angular,mhevery/angular,chrisse27/angular,hansl/angular,filipesilva/angular,nosovk/angular,petebacondarwin/angular,Brocco/angular,JanStureNielsen/angular,cexbrayat/angular,mgol/angular,e-hein/angular,JSMike/angular,rkirov/angular,vandres/angular,IdeaBlade/angular,StephenFluin/angular,vsavkin/angular,alxhub/angular,rkirov/angular,rbevers/angular,shairez/angular,aboveyou00/angular,mprobst/angular,JanStureNielsen/angular,IdeaBlade/angular,mhevery/angular,jasonaden/angular,matsko/angular,manekinekko/angular,panuruj/angular,IgorMinar/angular,Flounn/angular,Brocco/angular,xcaliber-tech/angular,mzgol/angular,Mathou54/angular,tbosch/angular,UIUXEngineering-Forks/angular,mprobst/angular,vinagreti/angular,meeroslav/angular,sjtrimble/angular,nosovk/angular,UIUXEngineering-Forks/angular,mlaval/angular,vikerman/angular,alfonso-presa/angular,laco0416/angular,jesperronn/angular,ocombe/angular,blesh/angular,gjungb/angular,chajath/angular,hterkelsen/angular,itamark/angular,vamsivarikuti/angular,vikerman/angular,vandres/angular,NathanWalker/angular,pkozlowski-opensource/angular,JanStureNielsen/angular,ultrasonicsoft/angular,smartm0use/angular,tolemac/angular,mzgol/angular,cironunes/angular,vinagreti/angular,Brocco/angular,ollie314/angular,meeroslav/angular,xcaliber-tech/angular,ValtoFrameworks/Angular-2,mgechev/angular,youdz/angular,trshafer/angular,alxhub/angular,aboveyou00/angular,dydek/angular,laco0416/angular,angular/angular,youdz/angular,gdi2290/angular,kylecordes/angular,laco0416/angular,vikerman/angular,rbevers/angular,hterkelsen/angular,ScottSWu/angular,UIUXEngineering/angular,angular/angular,asnowwolf/angular,UIUXEngineering/angular,heathkit/angular,hannahhoward/angular,UIUXEngineering-Forks/angular,pk-karthik/framework-js-angular,domusofsail/angular,UIUXEngineering-Forks/angular,kylecordes/angular,robwormald/angular,Mathou54/angular,naomiblack/angular,ultrasonicsoft/angular,vinagreti/angular,pkozlowski-opensource/angular,e-hein/angular,gdi2290/angular,gjungb/angular,IdeaBlade/angular,kegluneq/angular,hannahhoward/angular,diestrin/angular,cassand/angular,tbosch/angular,e-hein/angular,SekibOmazic/angular,gnomeontherun/angular,graveto/angular,royling/angular,angularbrasil/angular,ultrasonicsoft/angular,royling/angular,ScottSWu/angular,juristr/angular,cironunes/angular,ValtoFrameworks/Angular-2,naomiblack/angular,pk-karthik/framework-js-angular,petebacondarwin/angular,alexeagle/angular,vinagreti/angular,petebacondarwin/angular,sarunint/angular,hannahhoward/angular,SekibOmazic/angular,petebacondarwin/angular,tycho01/angular,gdi2290/angular,manekinekko/angular,hannahhoward/angular,e-hein/angular,ultrasonicsoft/angular,graveto/angular,vikerman/angular,zhura/angular,souvikbasu/angular,diestrin/angular,kegluneq/angular,UIUXEngineering-Forks/angular,laskoviymishka/angular,snaptech/angular,asnowwolf/angular,awerlang/angular,filipesilva/angular,vsavkin/angular,manekinekko/angular,dydek/angular,jonrimmer/angular,ScottSWu/angular,kegluneq/angular,kara/angular,laskoviymishka/angular,itamark/angular,brandonroberts/angular,dsebastien/angular,LucasSloan/angular,dejour/angular,SaltyDH/angular,gdi2290/angular,domusofsail/angular,juristr/angular,cassand/angular,templth/angular,cassand/angular,shairez/angular,domusofsail/angular,trshafer/angular,chuckjaz/angular,souvikbasu/angular,kwalrath/angular,vikerman/angular,kwalrath/angular,juleskremer/angular,gionkunz/angular,manekinekko/angular,panuruj/angular,kwalrath/angular,smartm0use/angular,gnomeontherun/angular,domusofsail/angular,ultrasonicsoft/angular,dtoroshin/n2oDoc,dsebastien/angular,graveto/angular,angular-indonesia/angular,Flounn/angular,hterkelsen/angular,sarunint/angular,kegluneq/angular,robwormald/angular,vicb/angular,ScottSWu/angular,gkalpak/angular,dsebastien/angular,zhura/angular,SekibOmazic/angular,alfonso-presa/angular,tolemac/angular,vamsivarikuti/angular,chajath/angular,JSMike/angular,dydek/angular,mikeybyker/angular,trshafer/angular,gkalpak/angular,sarunint/angular,ghetolay/angular,angularbrasil/angular,jasonaden/angular,jasonaden/angular,IgorMinar/angular,pkozlowski-opensource/angular,alxhub/angular,chrisse27/angular,heathkit/angular,panuruj/angular,rbevers/angular,trshafer/angular,gjungb/angular,cexbrayat/angular,IdeaBlade/angular,robwormald/angular,chuckjaz/angular,mgiambalvo/angular,domusofsail/angular,juleskremer/angular,rkirov/angular,mgiambalvo/angular,alamgird/angular,e-hein/angular,dydek/angular,JSMike/angular,robwormald/angular,wKoza/angular,Toxicable/angular,mgechev/angular,juristr/angular,rkirov/angular,Brocco/angular,mzgol/angular,meeroslav/angular,cexbrayat/angular,mgol/angular,zhura/angular,mgol/angular,IgorMinar/angular,tycho01/angular,juristr/angular,gionkunz/angular,tycho01/angular,wKoza/angular,hansl/angular,IgorMinar/angular,jonrimmer/angular,petebacondarwin/angular,ollie314/angular,ghetolay/angular,Brocco/angular,tolemac/angular,heathkit/angular,NathanWalker/angular,trshafer/angular,mikeybyker/angular,jesperronn/angular,alxhub/angular,mdegoo/angular,kylecordes/angular,souvikbasu/angular,youdz/angular,tbosch/angular,mprobst/angular,dtoroshin/n2oDoc,alexeagle/angular,wKoza/angular,jonrimmer/angular,juleskremer/angular,gionkunz/angular,alfonso-presa/angular,templth/angular,mdegoo/angular,SaltyDH/angular,manekinekko/angular,jasonaden/angular,tycho01/angular,ScottSWu/angular,kara/angular,not-for-me/angular,awerlang/angular,kegluneq/angular,ValtoFrameworks/Angular-2,youdz/angular,Mathou54/angular,sjtrimble/angular,vamsivarikuti/angular,mgiambalvo/angular,UIUXEngineering/angular,kylecordes/angular,nosovk/angular,rjamet/angular,brandonroberts/angular,pk-karthik/framework-js-angular,SekibOmazic/angular,Flounn/angular,ghetolay/angular,SekibOmazic/angular,zhura/angular,laco0416/angular,tbosch/angular,AlmogShaul/angular,jasonaden/angular,xcaliber-tech/angular,not-for-me/angular,mgechev/angular,hterkelsen/angular,ollie314/angular,rbevers/angular,cexbrayat/angular,mikeybyker/angular,chuckjaz/angular,AlmogShaul/angular,heathkit/angular,alfonso-presa/angular,mzgol/angular,pk-karthik/framework-js-angular,UIUXEngineering-Forks/angular,naomiblack/angular,kegluneq/angular,cironunes/angular,cassand/angular,angularbrasil/angular,panuruj/angular,jonrimmer/angular,rbevers/angular,sarunint/angular,vinagreti/angular,filipesilva/angular,JSMike/angular,gionkunz/angular,NathanWalker/angular,chajath/angular,vikerman/angular,vamsivarikuti/angular,alamgird/angular,mgiambalvo/angular,vamsivarikuti/angular,UIUXEngineering/angular,not-for-me/angular,itamark/angular,naomiblack/angular,itamark/angular,juristr/angular,Flounn/angular,ocombe/angular,Toxicable/angular,mgechev/angular,mgol/angular,cassand/angular,JSMike/angular,cassand/angular,laskoviymishka/angular,gjungb/angular,dejour/angular,LucasSloan/angular,souvikbasu/angular,xcaliber-tech/angular,templth/angular,blesh/angular,StephenFluin/angular,angular-indonesia/angular,tbosch/angular,diestrin/angular,cexbrayat/angular,mprobst/angular,gionkunz/angular,mgol/angular,JiaLiPassion/angular,naomiblack/angular,gionkunz/angular,LucasSloan/angular,templth/angular,brandonroberts/angular,AlmogShaul/angular,tolemac/angular,StephenFluin/angular,rjamet/angular,aboveyou00/angular,alexeagle/angular,angularbrasil/angular,youdz/angular,matsko/angular,dtoroshin/n2oDoc,kwalrath/angular,AlmogShaul/angular,angular-indonesia/angular,vsavkin/angular,laco0416/angular,vandres/angular,dydek/angular,rbevers/angular,jesperronn/angular,filipesilva/angular,mdegoo/angular,JanStureNielsen/angular,alxhub/angular,IgorMinar/angular,blesh/angular,chalin/angular,royling/angular,filipesilva/angular,hannahhoward/angular,alexeagle/angular,alfonso-presa/angular,vicb/angular,chuckjaz/angular,NathanWalker/angular,hannahhoward/angular