ALPHA VERSION!
Add support for dynamic requirements

With this change tasks may yield requirements from the run method.
If the requirements are present the task will continue if not the task will
be scheduled to restart later.

In order for all processes to have access to the new requirements it is required
that the task define a dynamic_requires function that return the classes it may
yield. I don't like this very much and would be happy to change it if someone have
a better idea.

This is only a prototype patch to get some feedback. I realize that the eval will fail
if arguments contain unknown types and that tests are needed etc.
Add dynamic requirements example