preset-list-model: implement a preset list model

This provides signalling to sync the preset list between multiple machines of
the same type.
Fixes #38