modal: make block (closes #798)

- [x] main idea
- [x] bh templates + tmpl-specs
- [x] specs
- [x] gemini tests
Crap it's a `popup`. I don't understand why do we use different ways to set block parameters inside our own library (`js` params vs BEMJSON fields) – "this API smells" :( We need to think about it separately.