experimental macro support

I wanted to make a lazy initialized container for line number correspondence.
It's erased and recomputed when new macro is expanded or collapsed(var), and expanded when there is no such number(mutable). If there is a needed line number it just returns the value(it should do it fast, because is asked for it very often).
I'll try to make more concisely and explanatory.