Fix issue #1032 that hosts and roles decorators violate fab -d task

I fixed issue #1032 .

And in this patch, I also added 3 tests.
1-1. hosts/roles decorator should preserve the argument **func's** sigunature.
1-2. hosts/roles decorator should preserve the argument **func's** sigunature even if fund is subclass of tasks.Task.
2. hosts/roles decorator should not change the argument **func** itself.

To pass test-2, I use python decorator module ( https://pypi.python.org/pypi/decorator ).