This adds support for checking whether a field is editable; Config objects should reject changes if the field is not editable. There is an "unlock" setting to override the check, although this is currently always locked.
This is an optional (until 3.3) base class, which can handle Presets consistently for configurations.