Add support for dynamic requiremnets

Tasks may now yield new requirements in run just as they are returned
in requires. If requirements are fulfilled when yielded the task will
continue, if not it will be rescheduled to be run when requirements are
finished. Note that this means that the task will be rerun from start.
Add dynamic requirement example
Add pyparsing to .travis.yml
Make it compatible with Python 2.6
Make parameter.serialize handle is_list
Change init proceduce for dynamic requirements

It used to be initialized using task_id now it's done using
task_family + str_params.
Add load_task function in interface
Remove id_to_parsable from task.py
Add test for task to str params conversion
Add dynamic dependency test

Also fix import problem where it would try to import worker_test
from luigi/test/test.py due to luigi/test having higher priority
in sys.path and worker_test being located in the test folder.
Merge pull request #424 from tommyengstrom/dynamic

Dynamic requirements