Tasks

A mv::Task is used to report the progress of a (lengthy) operation, and its lifetime is tracked by the core using the models below.