[ new ] Well-scoped (by construction) Model

We move from a Model using (informally) de Bruijn Levels and therefore
requiring quite a bit of machinery at reification time to keep track
of the correspondence between (informal) Levels in the model and
(type-level) de Bruijn in the syntax.

This requires the BND constructor in the model to be turned into a
something Kripke like (and to enable Haskell's RankNTypes language
extension).

But I feel it's worth it: lighter code & type-level constraints! No
risk to forget bumping the name supply's value anymore.