refactor default values to avoid core dependencies on pro

Default values depended on pro setting a flag and saving the options, and then core
checking that flag and reading the options. Core now has no dependency on that flag.
Instead, it instantiates a default value strategy that always supplies an empty default
value. Pro (or another plugin) can override that strategy with a filter to provide
alternate default values.