Add `umask` to `contextlib`

I created a separate thread for the modification base class discussion: Adding a `contextlib.ModificationContext` base class (I still prefer my suggested name, but I switched over to @jb2170’s proposed interface)