restructure summary generation

take summary_func_dict as argument: dictionary name to function; returns dictionary of arrays
reprocess_summaries_func operates on dictionary of arrays (possibly permanently popping from dict)
every_N is now a separate argument