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