Add shell module. New style using TaskQueue.
Change Task interface. Run() to return *Result.
Change Template, Directory and User to conforms Task interface.