Detect the device class, stage the selected experience, and write the resulting setup choices through SetupState.
Load the new device and experience modules before the existing setup pages, and use the Shift icon on the finished page.
Currently modules are initialized as QQuickItems. In order to be able to
add custom properties for modules to set in the future, introduce
InitialStartModule as the top-level QML object for modules to
initialize.
Currently only two properties are implemented: `available` for whether
to show the module in the wizard, and `contentItem` for the visual
module item.
Adds an experience for users on first login, allowing some basic configuration.
This is separate from a first start wizard, which would run as a separate user with elevated permissions, and include options that an installer would have.