Add context manager for environment variables

This allows you to temporarily have a context with different
environment variables set/unset.