Add features to task.Task

Old Task class renamed to BaseTask, and new Task class deriving from it
added in place of it. This new class adds following features:
- if no name is passed to task, name is autogenerated from task type
- all __call__ argument names (except 'context') are added to task
  requirements.

Change-Id: Ied69857932088b6e25d4817d2a8afeddccad36d8
Merge "Add features to task.Task"