Backwards compatibility madness.
When you Greenlock.create({ }), challenges will be set by default if
not available. This is good... ish.
When you approveDomains() and set opts.challenges, however, those must
be able to override the defaults.
This was just recently broken and the fix seems to be to make the prior
defaults inaccessible, otherwise it becomes really confusing as to why
a set DNS challenge for local, wild, or private domains is not being
preferred to the (failing) http.
All this crap will be cleaned up in v3...