Collapse drmgr into the core and unify the event interface
Xref #4128 (closed) where having key libraries separate from the core causes headaches, and #5160.
The DR API has evolved to the point where all the powerful features rely on drmgr and there's really no reason to support non-drmgr use anymore. Having it separate adds complications that may outweigh the "keep the core simple" goal.
The idea here would be to move drmgr into the core and remove all the layered events, and probably give all events a priority and user_data (user_data is key to better C++ interaction to avoid requiring static functions). So we'd get rid of the plain basic block event, e.g.