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
Allows workers to keep alive only for unique pending tasks

With resource limitations, it's very easy to have a lot of workers
sitting around just waiting for resources. This is problematic for
people using locks to prevent scheduling, as it will stop new tasks from
getting scheduled. To limit this behavior, this commit adds an option to
keep alive only if there is a pending task with all requirements done
which no other worker can work on. So older workers whose tasks are all
being waited on by newer workers can just die. I require the unique
tasks to be ready because all of my workers have a unique WrapperTask at
the root, and I don't want to wait for those. Having a unique ready task
tends to mean the same thing as having a unique pending task other than
the root one for me, so this works well for my scheduling patterns.

Since this won't work well for all scheduling patterns, it has to be
activated via a config parameter, worker-require-unique-ready as well as
enabling worker-keep-alive.