templatefilters: drop callable support from json()
This backs out
ae5447de4c11. A callable should be evaluated beforehand
by templater.runsymbol().
ui: use bytes IO and convert EOL manually in ui.editor()
Text IO sucks on Python 3 as it must be a unicode stream. We could introduce
a wrapper that converts unicode back to bytes, but it wouldn't be simple to
handle offsets transparently from/to underlying IOBase API.
Fortunately, we don't need to process huge text files, so let's stick to
bytes IO and convert EOL in memory.
util: add helper to convert between LF and native EOL
See the next patch for why.
util: extract pure tolf/tocrlf() functions from eol extension
This can be used for EOL conversion of text files.