[configuration] More strict naming rules for keyNames:
- may contain letters, digits, minus signs, underscores and periods
- must start with a letter, minus sign or underscore
- may not end with a period or minus sign

the rules about the periods are for possible future wildcard/globbing enhancements
[configuration] Removed type parameter from ConfigurationSource.Result