LS: smart indentation

Implementation of smart indentation that uses new syntax trees
Move this to services.ts since I plan to use it for signature help.