info: Read MDADM arrays as their size, not the size of their underlying drives
These are exposed to the user as the size of the array. If we find such
an array, read its size, record the drives and don't count their sizes
individually.
This is slightly fiddly for a couple of reasons:
- There's no API exposed in udisks2 to get directly from the
UDisksMDRaid object to the underlying UDisksDrives, so we have to
construct proxies manually.
- We might see the drives first, before we encounter the RAID array.
So we keep a reference to the UDisks objects when counting disk
sizes and then use this to later on subtract the size if we later
find out a drive is actually part of an array.
The current code relies on GLib API and uses the
available mounts to calculate the available partition
size. This is because this code assumes that more
than one OS can be installed in the same drive, and
wouldn't make sense to show the whole disk size in
this situation.
That, however, clashes with the general purpose of
the panel, for it is meant to show general information
about the user's computer, and it is not reporting
the full disk size.
Fix that by using the UDisks API to get the real size
of the full disks.