Fix funcs.save_dict() (Issue #8):

Wrap the entire portion of save_dict that creates a
tmpfile, dumps contents to it, and then renames it to
the final cachefile location in a Try/Except block that
throws a warning if it fails, but does NOT crash.