Задание №5
    В данном задании необходимо написать два вида умных указателей, класс persistent_set,
    и на основе persistent_set сравнить эффективность этих двух видов умных указателей.
    Вам необходимо написать класс persistent_set, аналогичный
    этому заданию для пересдачи со следующими дополнительными
    требованиями:
    
      - Поскольку мы уже знаем что такое шаблоны, value_type
      должен быть не какой-то заранее известный тип, а приходить из параметра шаблона
      persistent_set'а.
- persistent_set<T> не должен требовать, чтобы
      T был DefaultConstructible.
- Поскольку мы знаем, что такое rvalue-references, persistent_set должен их
      поддерживать: предоставлять перегрузки от rvalue-ссылок там где это уместно, енаблить мув
      там, где это возможно.
- Поскольку мы знаем, что такое noexcept, функции persistent_set'а должны быть
      соответствующим образом аннотированы.
- Пожалуйста, не забудьте написать swap для всех типов, для которых он имеет смысл.
При реализации этого класса вам понадобится использовать умные указатели. В этом
    задании вам предлагается реализовать два вида умных указателей и сравнить
    производительность класса persistent_set с использованием каждого из них.
    
      - Первый вид умных указателей это умные указатели на основе счетчиков ссылок. Скорее
      всего вам не понадобится вся мощь предоставляемая shared_ptr (вам не понадобятся weak
      ссылки, custom deleter'ы, возможность аттачиться к уже аллоцированному сырому указателю
      и т.п.), поэтому вы можете сделать свой указатель более простым и эффективным, чем
      стандартный shared_ptr.
      
- Второй вид указателей, назовем его linked_ptr, мы не разбирали на лекции, он основан
      на следующей идее. Давайте провяжем все указатели ссылающиеся на данный объект в
      двусвязный список. Когда указатель перестает ссылаться на объект он удаляется из
      этого списка. Когда список становится пустым объект можно удалить. Бонусом такого
      умного указателя является то, что он может аттачиться к сырому указателю без аллокации
      памяти.
      
        