Use functools.wraps in decorator

* This will ensure that the func_name/doc strings is correct across py versions
* Fixes issue #2