Enhancement: call intercept method in plugin before saving config
### Feature Description

Due to limitation on the UI side in setting constraints on json schema properties, it would be nice if config-ui called a `validate(pluginConfig)` type method, if the plugin implements it. That would give the plugin an opportunity to perform validations on the data entered on the form by the user.
Example 1: Field B is required if the value of Field A is "foo", but not required (or unused) if the value of Field A is "bar". As dependency constraints aren't currently implemented, either Field B is marked required/has a default value and stored in the config if Field A is "bar", or it is marked as not required/no default value and risk not getting stored in the config when Field A is "foo". In the first case it is just generating noise in the config, in the second case the config would not be valid from a business standpoint. The intercept method in the plugin could make business-level validations.
Example 2: ATM the only way to create a reproducible stateful uuid for a virtual device is to create a field on the form for the user to fill in (mac address wouldn't work for multiple devices in the same plugin). And a user could unintentionally enter the same uuid for two devices. If the plugin got a chance to intercept and validate the data before saving, then it could catch the problem and fix it. Or even better, the responsibility to assign a uuid to a newly created virtual device could be left to the plugin.

However, I am wondering whether this is possible, as `config-ui-x` is separate from the Homebridge platform and therefore may not have that kind of access to other plugins. Or it might require a lot of hoop jumping to give `config-ui-x` this kind of access.

Edit: this might be split into different approaches:

1. A set of boolean validators defined in the plugin that `config-ui-x` applies to the config prior to save
2. A function to allow `enrichment` of the config prior to save.
