Pull out pre/post code and rewrite in normal style
Update docstring of s/defn to clarify pre/post support
Update changelog and readme for new contributions