(#14200) Telly -> 2.7.x backward compatibility for app/face class names
This is basically just a tweak of
ce1e5555a847163e6448d1442a6d626957dac798, which was mostly
some cleanup and fixes for the help face. However, that commit
also (intentionally) broke backward compatibility for application class
names;
In 2.7.x, underscores in file names for puppet applications are expected
to translate to underscores in the class name. So, e.g., the
application defined in "resource_type.rb" is expected to have a class
name of "Resource_type".
However, that doesn't really match up with "standard" ruby or the
expectations of ruby developers. They expect for "resource_type.rb"
to translate to "ResourceType". The original commit introduced that,
but did not provide backward compatibility support for the "_" class
naming.
This commit does everything that the original one did, but includes
some hacks for backward compatibility with the underscore pattern.