Use six.wraps instead of functools.wraps

The six module provides a helper wraps function that correctly
tracks the original wrapped function in python 2.x and 3.x so
use it where we can so that we maintain better compatability with
3.x

Change-Id: Ifa994bf63153f58f0aa1f6203a963ac7312ac2b1
Merge "Use six.wraps instead of functools.wraps"