Ticket #2136: implement user-friendly interruption of long-time operations.

Initial step: created a simple timer.

Unlike GTimer, mc timer doesn't use a lot of multiplications and
divisions to convert seconds to nanoseconds and back. mc timer use only
multiplications to convert seconds to microseconds.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Create status dialog window to interrupt long-time operations.

Such dialog allows:
  * show status of operation;
  * control operation using dialog buttons (Abort, Suspend, Resume, etc).

Status dialog is raised after specified delay after operation start.
If operation duration is less than delay, the status dialog is not raised.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(simple_status_msg_t): simple status message with label and 'Abort' button.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(label_set_textv): new WLabel API.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Apply status message for directory size calculation.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
mcviewer: refactoring of percentage display.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
mcviewer: apply status message for search process.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(edit_buffer_calc_percent): new editor buffer API.

Modify way to calculate persentage: use byte offers instead of line one.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
mcedit: apply status message for search process.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
mcedit: apply status message for file load process.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Merge branch '2136_status_window'

* 2136_status_window:
  mcedit: apply status message for file load process.
  mcedit: apply status message for search process.
  (edit_buffer_calc_percent): new editor buffer API.
  mcviewer: apply status message for search process.
  mcviewer: refactoring of percentage display.
  Apply status message for directory size calculation.
  (label_set_textv): new WLabel API.
  (simple_status_msg_t): simple status message with label and 'Abort' button.
  Create status dialog window to interrupt long-time operations.
  Ticket #2136: implement user-friendly interruption of long-time operations.