(QE-25) fix :environment options being used as puppet argument
improved env merging, added spec tests for PuppetCommands
Merge pull request #478 from anodelman/fix_environment_construction

(QE-25) fix :environment options being used as puppet argument