DwarfDebug: Split the initialization of abstract and non-abstract subprogram DIEs.

These were called from distinct places and had significant distinct
behavior. No need to make that a dynamic check inside the function
rather than just having two functions (refactoring some common code into
a helper function to be called from the two separate functions).