Copy environment for subprocess execution

fixes #207 by ensuring the os.environ is copied before overriding LC_MESSAGES, in a similar manner to master.

Git utilizes multiple environment variables to control various
behaviours. Make sure to set LC_MESSAGES on a copy of the environment
instead of discarding any variables that may be set by the user or
default shell environment such as EDITOR.

Add test to assert that when overriding GIT_EDITOR via os.environ that
the modified value will be picked up by and git commands called.