ceph-volume: Introduce new `Lvm` base class to unify LVM object handling
This commit introduces a new `Lvm` base class to streamline LVM related objects
(`PVolume`, `VolumeGroup`, and `Volume`) by consolidating shared logic.
Key changes:
- `Lvm` centralizes common attributes like `name`, `tags`, `path`, and `binary_change`.
- `clear_tags`, `clear_tag`, `set_tag`, and `set_tags` are now defined in `Lvm`,
reducing code duplication.
- `PVolume`, `VolumeGroup`, and `Volume` inherit from `Lvm`,
simplifying their constructors.
- The redundant `_format_tag_args` and tag manipulation methods in
child classes are removed.
This refactor improves maintainability by reducing code duplication
while preserving the existing API behavior.