do signature-preserving decorators CORRECTLY
Merge branch 'decorator-argspec'