Config testability

Simpler change that should address concerns addressed by #569. Specifically:

* `BuildSignature()` is handy enough to publicize. Added as `virtual` on `Configuration` instead of as an extension method to replace two fake setups with one.
* `ConfigurationEntry<T>` can be `sealed` since its ctor parameters map directly to its properties.
* `GetEnumerator()` is now a `virtual` member instead of an explicit interface implementation. Some mocking frameworks can handle it (e.g. Moq: `mockConfig.As<IEnumerable<ConfigurationEntry<string>>>().Setup(...)`)  but it's ugly...