Implement completion overwrites

Allow completions to overwrite existing code. The user can
toggle between insert and overwrite modes by pressing `Ctrl`,
just like in the Java editor. This also respects the Java
editor option for preferring inserts always.

In addition to replacing the existing identifier, we also suppress
the linked mode for arguments (since likely the existing arguments
are not valid, but also we can't erase them, as they may be useful).
This is the same behaviour as in the Java editor

Fix #1000569