rewrites a file from stdin only if stdin is different from current contents of the file, in order to keep a timestamp that reflects when it actually changed. supports pre-change and post-change commands to invoke around the write, which can be used for e.g. diffs, VCS commits and email notifications.
TODO: Figure out how to actually get changelog content.
Changelog content for this version goes here.