`fab -d` display detailed task info including signature

Currently, running `fab -d <task_name>` shows only the docstring.  Sometimes, if the task takes arguments, merely listing what's in the docstring isn't enough.  You can always read the function definition in the fabfile, but if the fabfile exports tasks from another module, you will have to trace to that module to find the definition.

This PR spares you of all that trouble by making the signature, as well as any information of default arguments available to you through `fab -d <task_name>`.  This works on old style tasks, decorated tasks and class-based tasks.