rework guid mapping

Change the state tracking logic in Kernel.M to better handle
renaming.  We now replace notebook_guids when we change a filename.

Apart from not removing the old notebook this seems to work more
like ipython now.