refactoring types and providers with base_dsc type to enable uses of generating dsc types in external dsc puppet modules