This is a low-level system for registering LSP code actions. Developers can register their own code actions. In future commits I am going to add features on top of this.