moved responsibility for tasks states into repo

eventually, the repo should determine internally which states are
available (derived from existing task states plus a pre-defined list
read from a `.meta` file)