LS: smart indentation

Implementation of smart indentation that uses new syntax trees
functions in parser are parser specific - they determine whether current parser is now parse statement\declaration. In order to give answers they use current parsing state\lookaheads. In my case context is different - answer is provided for nodes that already exist.