Use functools.wraps in decorator

* This will ensure that the func_name and doc_strings are correct across py versions
* Fixes issue #2