LS: smart indentation

Implementation of smart indentation that uses new syntax trees
Does it perhaps make sense to collapse this with the previous call to getActualIndentationForListItem?