PDI-12017 processing a field name twice with getSafeFieldName() strips u...

...nderscores, field protector characters

@mattcasters, please review. This method will append field protectors, but if it finds those characters, will strip them. Added logic to protect field protectors and the hard-referenced underscore.