**All but the last three commits of this can be ignored as they are part of the PR
#149.**
The last three commits add generic classes for Cache monitoring, manipulation and
reporting, the implementation for the LVM Cache and pieces of code needed for the
``LVMLogicalVolumeDevice`` class to support cached LVs.
The reason why cached LV is not a new, separate class is that when the cache is detached,
such (formerly) cached LV becomes a normal LV like any other and its not possible to
change the type/class of an existing object. Thus the ``LVMCache`` class is added instead
the instances of which are referenced by cached LVs and provide the cache-related
functionality to them. The same approach will be later used for ``BcacheDevice`` and
``BcacheCache`` classes (a device can be formatted as a ``BcacheDevice`` with no cache
attached to it).
--
To view this pull request on github, visit
https://github.com/rhinstaller/blivet/pull/156