Add event publication when saving

Add event notifications to the save functions so that specifications can, if they wish, subscribe to the events to do processing prior to saving a snapshot (e.g., if a spec has some dynamic content and the author wants to be certain it is in a base state before saving).