Only backup the diff of environments. Fixes #82

This commit changes how direnv works and the terminal needs to be restarted.
Previously any changed environment would be reverted when exiting a folder
that contains an .envrc. This changes the behavior to only restore variables
that where changed inside the .envrc.