Replace our pyudev with the package python-pyudev.

There are two major differences in how we use the module. Each device
is represented by a pyudev.Device instance, which is based on
collections.abc.Mapping. That means we can no longer change the data
to do things like set a "multipath_member" format type or inject LVM
or MD metadata.

The other difference is that sysfs paths now include the "/sys", which
is great since it's always mounted in the same place.
Keep lvm and md metadata separate from udev info.

We can't inject data into pyudev.Device instances like we could when
the udev db entries were plain dicts.
Adapt multipath detection code to external pyudev module.

The main difference is that we can't write to pyudev.Device instances.
Remove some unused multipath-specific functions from blivet.udev.
Look in udev data for md member UUID.

Use data from mdadm -E if needed as a fallback.
Get md member and array UUIDs for format ctor from udev.

Since the data is in udev we can save the trouble of running mdadm -E
here and this also saves us from having to cache the md metadata in the
devicetree.
Remove an obsolete block related to unpredictable md device names.

The functionality this block originally provided should be covered by the
UUID lookup we do in addUdevMDDevice.
Update md name when lookup relied on UUID.

Related: rhbz#1090009
Don't pass md array UUID as member format UUID.

Related: rhbz#1070095
Simplify udev.device_get_uuid.

md members never have MD_UUID set in the udev db.
Bypass size getter when mocking new devices.

The size getter gets the size from the partedDevice, which is not
advisable while we're in the process of mocking the partedDevice.
Remove unused lvm and md activation code.

This was used before we let systemd/udev set up storage for us.
Clean up mocking done by udev tests when finished.
Update selinux tests for default context of mounts under /tmp.

Filesystems mounted under /tmp now have type unlabeled_t unless their
context is reset after mounting.