This makes it easier to select the intended settings value as the
underlying value often has no direct connection to the user facing name.
It also makes it possible to select list entries whos underlying value
changes frequently, but the user facing value does not.
(E.g. device IDs based on the input port compared to the device name)
The "core" macro conditions and actions have been extracted out to the
"base" plugin.
The library now mostly contains functionality which is required across
all plugins and (e.g. definitions for macro segments).
The goal is to reduce the complexity and cross-dependencies and group
the source files in a better way.
This should relsove the "library limit of 65535 objects exceeded" build
issue occuring in some Windows build environments.