[WIP] modal: make block (closes #798)

The main idea is here.

TODO:
- specs
- gemini tests
- documentation draft
- more examples
`/** @lends popup.prototype */` confusing