#8 #7: Handle cyclic references in SubstitutionPropertiesProvider. Make EnvPropertiesProvider more flexible by allowing it to read the ENV_PREFIX from a PropertiesProvider (and use SystemPropertiesProvider as the default).