Use StringRef as key to CallTargetMap. Previously CallTargetMap uses a StringMap, which actually stores a copy of the string. All strings put in the map is found to be backed by the profile data so a StringRef can be safely used.
This refactoring is a prerequisite to implement phase 2 of MD5 refactoring, where StringRef can represent an MD5 value directly, instead of casting it to a string first.