Refactor: group jobs and partitionModel for a device in a DeviceInfo struct

Makes it easier to clear all jobs for a specific device, which is necessary
when replacing a device partition table
Refactor: Introduce PartitionInfoProvider interface, and make DeviceInfo implement it
Forget pending changes when the partition table is recreated