Progress::Any update

This is an update to the post where I introduced Progress::Any a few months ago. Progress::Any is a framework that separates progress updating and outputting.

I have recently revised the API (sadly not backward compatible with old one). It now resembles Log::Any a bit further. In module code, we just need to use Progress::Any to get progress indicator, set position and target, and update the indicator while doing work:

In application code, we use Progress::Any::Output to set (or add) output:

use MyApp;
use Progress::Any::Output;
Progress::Any::Output->set('TermProgressBarColor');

Hierarchy now works. If you add a subtask, the parent tasks will get updated
accordingly.

Progress::Any now handles the calculation of times (elapsed, ETA) so output
modules can share this code and become much more simpler.

I've replaced the TermProgressBar output which uses Term::ProgressBar with
TermProgressBarColor (currently the code is preliminary, but I plan a much more
prettier output with lots of options, like animations, color themes, and
styles). I've also added a couple other outputs for examples: TermMessage and
Callback.