bem/bem-bl — pull request #312 by indutny (2012-12-03 13:04:38+00:00)
Title: i-bem: use prototypes instead of singleton.

In a few words, `i-bem` is always initializing `this._` routines and doing a lot of stuff on every render that could be done once at startup.

Obvious solution would be sharing routines object by encapsulating it in `BEMHTML`'s closure. I've did it by extending `bemhtml` grammar to allow writing raw javascript statements without `bem` sugar.

Also, I've removed `_start` check and initialization, because it was executing only once per render, but checked on every recursive call. Now all initialization is happening in the wrapper of xjst's `apply` function, which is located in `BEMContext.apply`.

@veged @narqo please review carefully. I'm absolutely sure in ometajs grammar changes, but you guys should help me in identifying any drawbacks that might be introduced by `i-bem.bemhtml` changes.