make.kak: Make column optional.
Fix buffer name completion when basename only
Use more StringView in string helper functions
Change escaping method for command completion
Fix buffer modification check

It used to grab the next key, because the normal mode reactivation
when executing the on_next_key would trigger a timestamp check again.
Add an operator[](CharCount) to String and StringView
Make safe_ptr able to track callstacks

The code stays disabled, as the performance penalty is quite
high, but can be enabled to help debugging safe pointers.
Tweak client redraw logic, avoid highlight if only status line changed
Defer deletion of buffers to after the event loop

We can have SelectionList in flights on the buffer, so mark
it for deletion by moving it in a buffer trash, and effectively
delete it later, at a point where there should not be any further
access to it.
NCurses: properly handle ctrl+alt
Add support for <c-w> <c-b> and <c-e> for word moves in the line editor

This might go away later if we find a better way of handling line
edition, but seems like a good compromise for now.

Fixes #168
git-tools.kak: Add completion support to git command
memoryview: add support for reverse iteration
Refactor main loops, use separate functions for each running mode

Server, Client, and Pipe are handle through separate functions,
with the kakoune function handling parameter parsing.
Add support for running kakoune as a filter, using -f 'keys'

It will cycle on every given files, apply the keys and write to
<filename>.kak-out. Only normal/insert mode is available, kakrc
are not read.
Refactor, remove kakoune function and move it inside main.
Add support for reading from stdin/writing to stdout in filter mode

Note that kakoune still needs to read the whole buffer first, only
once stdin is closed can it execute the keys.
Add exception reporting in filter mode
Always inline a few more methods
git-tools: list available commands in git docstring