gitignore: added QtCreator's stuff
Tab_manager: m_tabs is now std::list; removed get_tabref

Using std::list instead of std::vector for m_tabs to avoid invalidating
the iterators.
Handler: removed m_type member and methods depedent on this variable
Tab: added noexcept qualifiers to move assigment operators

also, using emplace_back instead of push_back
List_dir: added noexcept qualifiers to move assigment operator
added Cursor_cache
Column: removed m_parent_tab
Cursor_cache: using Cursor_cache::Cursor as iterator

renamed methods:
* store_cursor -> store
* find_cursor  -> find

the "_cursor" part was redundant...
Tab: we're now using Cursor_cache

As a consequence, we don't need update_cols_tab_ptr() and bunch of other
methods.
List_dir: we're now using Cursor_cache; ctor changed a bit
fsctl: commented out the whole file

I'll get back to this later.
List_dir: cleaned up read_directory() a little bit
deleted Handler.cpp and Handler.h

Handler was completely replaced by Column to avoid another layer of
indirection.
Column integrated Handler

From now on, all handlers will inhert from Column class itself instead
of Handler class - which removes one layer of indirection and simplifies
things quite a bit.
Type_factory: renamed alias Type_product to Handler

This suits better to Column-Handler integration since the Columns
themselves are handlers.
List_dir inherts from Column instead of Handler
Tab_manager: renaming Type_product->Helper and get_pwd->get_path
Tab: changed build_columns() logic, renamed m_pwd to m_path
Tab: condition in get_last_column_path should never fire
Tab_manager: changed add_tab signatures

Each Tab has to have a std::shared_ptr<Cursor_cache>& passed by user.