initial autosave implementation

will refine later, for now its forced save on interval.  Eventually i
will implement collection level dirty flags and only save if any
collections have changed pending save.