Implement scalable, per-buffer fonts

This allows us to resize the fonts used in the current buffer. When a
font needs to change in certain buffer, we do a deep copy for that
layout and go from there.

Having asked around, vim doesn't seem to have a key for such a thing by
default so I'm not binding anything. In emacs keymap it's C-+ and C--
like in actual emacs loaded with gtk support.

Vty does nothing new.

Fixes #608