Like thunkify-wrap, but (a) doesn't modify the original object and (b) copes with functions that have function properties