Commit Briefs
drop the __attribute__
it causes various warnings when building on linux with GCC, and since also compat_ohash.h in mandoc is without the __attribute__ I can safely remove from here.
big refactor: introduce the window abstraction
- commands now take a struct window* instead of a raw tab - the struct ui_state is gone - using a window for the minibuffer too helps avoid code duplication - it will let us having more than one window on a tab! :DD It doesn't seem to have broken anything...
cursor handling with utf8 support
the code relative to the cursors movements now respects the width of the characters (zero, one or two cells).