Introduce a new configuration mechanism

This replaces Properties with a more friendly, thread-safe, and
type-safe builder approach.