Counted pointer cast first implementation
Cleaned up the CountedPtrCast backend a bit in preparation for merge with CountedPtr