clones should not share an env dict

This is similar to #2, but I think more correct.

Previously, cloned commands were sharing a single ._env attribute.
Classes' _clone methods should ensure that there's a copy made of any mutable attributes, and Operation wasn't doing this for its _env dict.
No, doesn't block this PR, was just mentioning it since I noticed it. I actually started looking into this deeper when you sent the request. There's some references we don't want to copy like `_parent` and `_clom` on `Command` which inherits `Operation`s `_clone`. Can work around that of course. I started working on refactoring this to use `__copy__` and `__deepcopy__` but traveling now. I'll merge this in now and submit a pull request for `__deepcopy__` when I get a chance.