Provide basic infrastructure for moving PHIDs, Handles and Object Names to applications
Summary:
See discussion in T2715. Currently, PHIDs are all hard coded in the PHID application. In the long run, we need to move them out into actual applications.
A specific immediate issue is Releeph, which uses a very very old and very broken mechanism to inject PHIDs in a way that only sort of works.
Moving forward, every PHID type will be provided by a PhabricatorPHIDType subclass, which will manage loading it, etc.
This also moves toward cleaning up the "load objects by name" (where "name" means something like D12) code, which is an enormous mess and spread across at least 4-5 callsites.
Test Plan: Used phid.lookup and phid.query to load Slowvotes.
Reviewers: btrahan
Reviewed By: btrahan
CC: aran
Differential Revision: https://secure.phabricator.com/D6502