Instead of forcing task provides to be a tuple or list and
using the corresponding numerical index to determine how to
interpret the tasks results we should also allow for the task
provides to be a set and then allow for the tasks result to be
interpreted as a dictionary.
Fixes bug 1221998
Change-Id: Ibae689e7975d6782aa248d2b6e3691c44a89ef9f