modal: make block (closes #798)

- [x] main idea
- [x] bh templates + tmpl-specs
- [x] specs
- [x] gemini tests
May be we can use some non-boolean "value" for `_visibility` (e.g. `_visibility_progress`)? 

BTW, it would be much better to start use `transitionend` with `display: none` in CSS, instead of permanent `visibility: hidden`?