This commit changes previous reading command implementation to an
asynchronous implementation. By the nature of this change, this commit
touches many places in the ui and evaluator. Aim is to fix the following
problems:
- There is no race condition anymore when reading commands and other
commands update the ui at the same time.
- Autocompletion and keymenu is now drawn in the main draw event. This
should fix some ui glitches when a new menu is smaller than the previous
one.
- Window resize event when reading a command is now properly handled.
- Readline actions are now regular commands. This should make it
possible to change the default keybindings for these actions in the
future.
Mentioned in #36.
* gofmt ui.go
* Refactor Nav API around symlinks handling (mostly)
1. Get both `Lstat` and `Stat` while reading the files. Stat info is
used by default, but we still can tell it's a link if needed.
2. Remove all other `Stat` calls from different places.
3. Handle hidden files while reading.
4. `currFile` now returns error if there are no files.
5. `currEmpty` and `currPath` not longer necessary, removed.
6. `open` now returns a named error ErrNotDir, where expected.
7. Side effect: Links that point at directories are now sorted among
"actual" directories.