Replace enumerations with strings and make it easier to have custom values
Currently core package uses some fixed enumerations for task keywords and metrics (and maybe few more). This makes it easier to type check/prevent errors, but it prevents one to add custom (local to the installation, not program wide) values. For example, if somebody wants to reuse core package for a new task type, this is not currently possible. So it would be beneficial to relax these enumerations and provide API for one to add more of them, and to list which ones are registered.
We did similar for dataset loaders/savers and problem description loaders. We should do this for task types/keywords, metrics, and maybe few others, like step type, and this would then allow nice extensibility if one wants to use the package.
Related: #207 (closed)