Recreate build user and its dirs before each build

Ensures the uid/gid are up to date with config and there's no garbage left by
previous build in case of --no--clean
Do Yum/DNF update before each build (configurable)

This was omitted when refactoring the initialization. Adding back and making it
configurable with 'update_before_build'.
Don't apply unique-ext to shared_root_name
Simplify LVM rollback

Make new snapshot of the selected snapshot instead of renaming it to current and
creating new after
Implement sharing of thinpool between mock instances

Mock instances using the same config but having different --unique-ext now share
the thinpool and the snapshots, but have their separate 'head' LVs used for
building that can be based on different snapshots.