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
Yep! https://github.com/learningequality/ka-lite/pull/2324/files#diff-1a03985d0124f6a6d48e4f0f17177575R2

It's basically all functional (some settings, such as `turn_off_points_for_videos`, don't do anything yet). The groups.py file is dummy for now. If you create students under the 3 facilities (named "facility1" etc), you can login as each of them in turn (or in separate profiles/browsers) and see the different conditions being applied. If you load http://127.0.0.1:8008/_generated/dynamic.js?unit=2 etc, you can then also simulate what the settings will look like for the current user in the corresponding unit.