language_tools : make `CodeCompleter` a class

align with other similar parts of the library; provides more control
over proxy lifecycle / disposal