Dynamic settings v2.0

A new PR extending #2229, with a class-introspection-based approach to the dynamic settings.

I opened this PR so that the dynamic settings changes could all be seen in one place. To see the difference between #2229 and the changes I made, see https://github.com/jamalex/ka-lite/pull/5
Does this file get loaded somewhere, or is it just a schema to be used later?