CallSite will likely be removed soon, but AbstractCallSite serves a different purpose and won't be going away.
This patch moves it to its own header and switches it to internally store a CallBase* instead of a CallSite. The only interface changes are the removal of the getCallSite function and getCallBackUses now takes a CallBase&. These methods had only a few callers that were easy enough to update without needing a compatibility shim.