## Краткое описание

Есть файловая система и дерево каталогов, где документы редактируются пользователями. Файловая система очень большая и имеет тысячи вложенных директорий и десятки тысяч документов. Для каждого открытого документа создается резервная копия в формате `.bak` (например, `doc1.bak` для `doc1.doc`).  
В общем случае, резервные копии удаляются при закрытии файла, но иногда они остаются и не очищаются после работы. Исходные документы могут быть удалены, перемещены или переименованы, при этом в директории могут остаться `bak` файлы, которые не имеют соответствующего родительского `doc` файла. Необходимо удалить все такие резервные копии без родительского файла в заданном дереве каталогов. Также в дереве каталогов не нужны пустые директории.

## Задание
Необходимо реализовать небольшую консольную утилиту для очистки дерева каталогов от временных файлов и удаления пустых директорий. Решение должно быть максимально эффективным с точки зрения скорости обработки/выполнения. 
Реализация должна отвечать следующим условиям:

 - использовать OOP методологию
 - использовать многопоточность для эффективного, быстрого выполнения очистки
 - использовать аргументы командной строки для получения пути к корневой директории дерева каталогов
 - следовать PEP20

#### Примерное время выполнения: 2 часа

### Дополнительное задание
Добавить логирование для утилиты с использованием logging и настройка форматирования записи лога. 

## Выполненное тестовое задание 

 - Код опубликовать на GitHub
-  Отправить рекрутеру вместе с информацией о затраченном времени на выполнения задания


### Желаем удачи
Команда разработки BWTGroup