Moving the core functionality of std::function formatter into CPPLanguageRuntime in preparation for future changes to allow us to step into the wrapped callable of std::function.
This will prevent code duplication since both functionalities require the same core pieces of information. This refactor also improves the readability of the existing functionality.