Make Application->isInstalled canonical
Make Application->isInstalled canonical

Summary: We currently inspect `phabricator.uninstalled-applications` in two places -- when building a list of `getAllInstalledApplications()` and when asking an application if it `isInstalled()`.  This diff moves that all to the latter function, meaning we can override it in clever and subtle ways for applications that want to add extra defensiveness about whether they should be considered installed or not (e.g. Releeph, in D4932.)

Test Plan: Load the main Phabricator page, pick an application, uninstall it, notice it is absent, then install it and notice the launch icon reappear.

Reviewers: epriestley, Afaque_Hussain

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D5326

MicroWorldwide/phabricator,UNCC-OpenProjects/Phabricator,Symplicity/phabricator,a20012251/phabricator,librewiki/phabricator,jwdeitch/phabricator,schlaile/phabricator,r4nt/phabricator,shrimpma/phabricator,aswanderley/phabricator,wxstars/phabricator,uhd-urz/phabricator,eSpark/phabricator,vuamitom/phabricator,folsom-labs/phabricator,UNCC-OpenProjects/Phabricator,coursera/phabricator,jwdeitch/phabricator,akkakks/phabricator,leolujuyi/phabricator,folsom-labs/phabricator,aik099/phabricator,kwoun1982/phabricator,denisdeejay/phabricator,ide/phabricator,NigelGreenway/phabricator,Khan/phabricator,tanglu-org/tracker-phabricator,hach-que/phabricator,hach-que/phabricator,shl3807/phabricator,akkakks/phabricator,r4nt/phabricator,Automatic/phabricator,tanglu-org/tracker-phabricator,sharpwhisper/phabricator,ryancford/phabricator,gsinkovskiy/phabricator,Khan/phabricator,MicroWorldwide/phabricator,huaban/phabricator,memsql/phabricator,aswanderley/phabricator,jwdeitch/phabricator,huaban/phabricator,a20012251/phabricator,parksangkil/phabricator,Automattic/phabricator,kalbasit/phabricator,sharpwhisper/phabricator,optimizely/phabricator,memsql/phabricator,matthewrez/phabricator,ide/phabricator,telerik/phabricator,Automatic/phabricator,a20012251/phabricator,telerik/phabricator,huaban/phabricator,WuJiahu/phabricator,wikimedia/phabricator-phabricator,leolujuyi/phabricator,coursera/phabricator,schlaile/phabricator,christopher-johnson/phabricator,wusuoyongxin/phabricator,optimizely/phabricator,optimizely/phabricator,benchling/phabricator,wikimedia/phabricator,vinzent/phabricator,denisdeejay/phabricator,matthewrez/phabricator,kalbasit/phabricator,codevlabs/phabricator,wikimedia/phabricator-phabricator,Soluis/phabricator,kwoun1982/phabricator,huangjimmy/phabricator-1,librewiki/phabricator,zhihu/phabricator,optimizely/phabricator,freebsd/phabricator,denisdeejay/phabricator,Automattic/phabricator,sharpwhisper/phabricator,librewiki/phabricator,Soluis/phabricator,matthewrez/phabricator,kwoun1982/phabricator,denisdeejay/phabricator,eSpark/phabricator,matthewrez/phabricator,folsom-labs/phabricator,memsql/phabricator,phacility/phabricator,zhihu/phabricator,uhd-urz/phabricator,gsinkovskiy/phabricator,vinzent/phabricator,aik099/phabricator,Drooids/phabricator,r4nt/phabricator,phacility/phabricator,WuJiahu/phabricator,coursera/phabricator,vuamitom/phabricator,aswanderley/phabricator,folsom-labs/phabricator,wikimedia/phabricator-phabricator,christopher-johnson/phabricator,huaban/phabricator,librewiki/phabricator,jwdeitch/phabricator,UNCC-OpenProjects/Phabricator,cjxgm/p.cjprods.org,devurandom/phabricator,gsinkovskiy/phabricator,aswanderley/phabricator,parksangkil/phabricator,shl3807/phabricator,vuamitom/phabricator,Soluis/phabricator,zhihu/phabricator,NigelGreenway/phabricator,Symplicity/phabricator,folsom-labs/phabricator,apexstudios/phabricator,wikimedia/phabricator,shrimpma/phabricator,wusuoyongxin/phabricator,MicroWorldwide/phabricator,gsinkovskiy/phabricator,Khan/phabricator,tanglu-org/tracker-phabricator,wikimedia/phabricator-phabricator,benchling/phabricator,dannysu/phabricator,a20012251/phabricator,hach-que/unearth-phabricator,zhihu/phabricator,Automatic/phabricator,vinzent/phabricator,shl3807/phabricator,wxstars/phabricator,NigelGreenway/phabricator,devurandom/phabricator,NigelGreenway/phabricator,kalbasit/phabricator,devurandom/phabricator,sharpwhisper/phabricator,kanarip/phabricator,hach-que/unearth-phabricator,devurandom/phabricator,Drooids/phabricator,wikimedia/phabricator-phabricator,cjxgm/p.cjprods.org,huangjimmy/phabricator-1,parksangkil/phabricator,eSpark/phabricator,ide/phabricator,christopher-johnson/phabricator,aik099/phabricator,MicroWorldwide/phabricator,hach-que/phabricator,codevlabs/phabricator,wangjun/phabricator,wikimedia/phabricator,sharpwhisper/phabricator,christopher-johnson/phabricator,devurandom/phabricator,leolujuyi/phabricator,benchling/phabricator,shl3807/phabricator,NigelGreenway/phabricator,wxstars/phabricator,r4nt/phabricator,Soluis/phabricator,freebsd/phabricator,hshackathons/phabricator-deprecated,akkakks/phabricator,hach-que/unearth-phabricator,huangjimmy/phabricator-1,UNCC-OpenProjects/Phabricator,codevlabs/phabricator,Symplicity/phabricator,vuamitom/phabricator,vuamitom/phabricator,apexstudios/phabricator,benchling/phabricator,memsql/phabricator,cjxgm/p.cjprods.org,wangjun/phabricator,Automattic/phabricator,zhihu/phabricator,Drooids/phabricator,Drooids/phabricator,Symplicity/phabricator,hshackathons/phabricator-deprecated,devurandom/phabricator,kalbasit/phabricator,christopher-johnson/phabricator,WuJiahu/phabricator,kanarip/phabricator,aik099/phabricator,shrimpma/phabricator,freebsd/phabricator,wikimedia/phabricator,eSpark/phabricator,vinzent/phabricator,akkakks/phabricator,huangjimmy/phabricator-1,zhihu/phabricator,phacility/phabricator,akkakks/phabricator,uhd-urz/phabricator,kwoun1982/phabricator,huangjimmy/phabricator-1,apexstudios/phabricator,kanarip/phabricator,schlaile/phabricator,dannysu/phabricator,aswanderley/phabricator,parksangkil/phabricator,kanarip/phabricator,wangjun/phabricator,dannysu/phabricator,uhd-urz/phabricator,wangjun/phabricator,codevlabs/phabricator,codevlabs/phabricator,eSpark/phabricator,a20012251/phabricator,vinzent/phabricator,cjxgm/p.cjprods.org,schlaile/phabricator,ryancford/phabricator,hshackathons/phabricator-deprecated,shrimpma/phabricator,hach-que/phabricator,dannysu/phabricator,ryancford/phabricator,optimizely/phabricator,librewiki/phabricator,hshackathons/phabricator-deprecated,r4nt/phabricator,ide/phabricator,hach-que/unearth-phabricator,phacility/phabricator,wusuoyongxin/phabricator,kanarip/phabricator,wusuoyongxin/phabricator,tanglu-org/tracker-phabricator,leolujuyi/phabricator,coursera/phabricator,hshackathons/phabricator-deprecated,telerik/phabricator,hach-que/unearth-phabricator,hach-que/phabricator,ryancford/phabricator,memsql/phabricator,dannysu/phabricator,Automatic/phabricator,kwoun1982/phabricator,gsinkovskiy/phabricator,Khan/phabricator,wxstars/phabricator,tanglu-org/tracker-phabricator,Soluis/phabricator,freebsd/phabricator,cjxgm/p.cjprods.org,uhd-urz/phabricator,WuJiahu/phabricator