Отрефакторены метды добавления записи в журнал: функции для добавления перенесены в ConcurrentLinkedNodesCollection, её _head сделана приватной. Добавление записи в середину в голову коллекции разбиты на отдельные методы.
TailCutLinkedNodesCollectionCleaner вынесен в отдельный файл
В TailCutLinkedNodesCollectionCleaner вынес отрезание хвоста в отдельную нелепую процедуру.
Из-за того, что сначала хотел рекурсивно разрушать хвост, но потом понял, что это не обязательно
Попытался сделать тест для TailCutLinkedNodesCollectionCleaner, но ничего хорошего не вышло
TailCutLinkedNodesCollectionCleaner декомпозирован на отчищателя и политику отчистки. ConcurrentLinkedNodesCollection отвязан от JournalRecord<>.
Тесты переписаны так, что отдельно теструются ConcurrentJournal и ConcurrentLinkedNodesCollection.
Добавлен SkippingLinkedNodesCollectionCleanerDecorator - декоратор, позволяющий потокобезопасно пропускать некоторые запросы на отчистку - и тесты для него