LSP DidChange

This week was implementing DidChange for LSPs. It required some changes to existing code because I didn't track enough information. The main one was how many UTF-16 characters were deleted. That's required even if the document is UTF-8 encoded.