Layer management
===
Управлением слоями занимается менеджер слоев (layer manager).
Регистрирует слои, которые соответствующим образом обрабатываются. Так,
например, при инициализации в нем регистрируются сцены, с помощью
метода *addScene.*

Глобальный объект приложения предоставляет следующие методы, которые
делегируют действия к менеджеру слоев:

-   _**addScene**_ - регистрирует сцену по указанному имени;

-   _**show**_ - открывает зарегистрированную сцену по указанному имени,
    также принимает на вход объект данных, с которым будет вызван метод
    *preload*;

-   _**home**_ – открывает домашнюю сцену.

Включение слоя в DOM осуществляется при регистрации сцены или вручную, с
помощью метода *app.showChildLayer* или *app.showChildLayerInstance,*
принимающие конструктор или инстанс слоя соответственно. 

В процессе обработки менеджером слоев (layer manager) выполняются
методы, дополнением которых можно проконтролировать процесс обработки
слоя:

-   _**preload**_ - принимает объект данных и возвращает promise.
    Вызывается перед показом слоя. Показ сцены осуществится только когда
    promise разрешится. Используется, когда слою требуются внешние
    данные, нередко подгружаемые асинхронным запросом.

<!-- -->

-   _**update**_ (надо проверить) - принимает снэпшот (snapshot) и
    объект данных из истории переходов, возвращает promise. Вызывается
    при перемещении назад по истории переходов. Показ сцены осуществится
    только когда promise разрешится. Используется, когда нужно обновить
    данные, хранящиеся в истории переходов. 

-   _**beforeDOMShow**_ - принимает снэпшот и объект данных.  Вызывается
    после preload, но перед тем, как показать слой.
    Вызывает *beforeDOMShow* для всех своих виджетов;

-   _**afterDOMShow**_ - принимает снэпшот и объект данных. Вызывается
    после показа слоя. Вызывает *afterDOMShow* для всех своих виджетов.
    При наличии снэпшота загружает его, в противном случае активирует
    виджет по умолчанию (если такой установлен);

-   _**beforeDOMHide**_ - вызывается перед скрытием слоя.
    Вызывает *beforeDOMHide *для всех своих виджетов;

-   _**afterDOMHide**_ - вызывается после скрытия слоя. Вызывает
    *afterDOMHide *для всех своих виджетов;