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>
(FileProgressStatus): change values to avoid overlapping with B_* values.

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>