Set __signature__ in decorators

PEP 362 introduces __signature__ for functions as a way to alter
function arguments in a decorator in a way that can be reliably
inspected.  It is first implemented in Python 3.3, but not complete
until Python 3.4, which includes inspect.unwrap.  Back ports are
available, and should be used before __signature__ is relied upon.

Sphinx 1.3 on Python 3.4 uses the inspect module to automatically
describe function arguments, allowing documentation to be accurate
even in the presence of decorators.

deprecated_args updates the signature to include the deprecated
arguments, either providing a note in the default value, or
a default of NotImplemented if there is no substitute argument.

Change-Id: I2aeef8c8f31cdb01f18e199834b2f1a8ef8b043c
Merge "Set __signature__ in decorators"