Introduce API for handling cgroups

Authored by davidedmundson on Jun 4 2020, 12:24 PM.

Description

Introduce API for handling cgroups

A model is exposed that groups processes by cgroup and provides grouped
information.

The model can be started and stopped and can be set to follow a given
root. All system units, all users, or a specific slice within that.

Information for all pids is calcuated totalled and included via the
ProcessAttribute helpers.

Cgroups are set to handle applications that follow
https://systemd.io/DESKTOP_ENVIRONMENTS for grouping of applications. A
convenience model ApplicationDataModel subclass exposes this directly.

The exposed model is a 1:1 mapping of ProcessDataModel for easy drop-in.