На один ресурс выделений памяти:
  Parameters -- объект, хранящий параметры
    (холдер сохраняет у себя)
  Id -- строка для быстрого сравнения инициализатора ресурса
    (неизбежно, если хотим поддерживать быстрое сравнение)
  Record -- внутри хешмапы менеджера
    (неизбежно, но можно делать эффективно, т.к. Record фиксированного размера)
  Holder -- в клиентском коде
    (неизбежно, так как хотим эффективный холдер)

На каждый тип ресурса клиентский код:
  * TConcreteResourceType со всеми методами
  * Создание Singleton'а TConcreteResourceType'а
  * TConcreteResource со специфичными методами
  * TConcreteParameters со всеми возможными параметрами загрузки
  * TConcreteResource.Load(...):
        * Заполнить Id
        * ActualResourceManager(M)^.GetResource(Id, R)
        * Закешировать R^.Holder
