1. Вы подключили
'use strict';
в самом начале кода. Этим подключением вы можете потенциально сломать чей-то чужой код, который написан без учета новых правил. Ваша первая задача - инкапсулировать свой код. Перенесите внутрь Gallery.
2. Не хватает возможности подключать код как модуль:
https://github.com/umdjs/umd
3.
throw new Error('I cant find gallery-element on this page');
- не нужно кидать ошибку тут. Ваш плагин должен тихо проверять есть ли нужные элементы, и, если их нет, тихо НЕ запускаться. Мало ли, вдруг его подключат на весь сайт, а галерея будет только на одной из страниц.
4. В остальном код выглядит немного сумбурно. Нет визуального разделения на части, разная функциональность не вынесена в отдельные функции, трудно понять логику и последовательность выполнения. Возможно не хватает немного комментариев. При расширении функциональности через какое-то время поддерживать этот код станет очень тяжело.