Only assign env as the saltenv if it is a string
Only assign `env` to `__env__` if it's a string
Fix how OS env params are handled in cmd module
Fix handling of env param in cmd states

No need to check if "env" is a string, the state compiler takes care of
that. Also, the cmd.run state is doing some input munging and that is
not the type of thing that should be done in states, it should be done
exclusively in the cmd execution module.

For passing of OS environment params, this commit also simplifies the
type checking for "env", returning a False result if anything but a list
or dict was passed.
improve error message
Change dict structure for consistency
Use __env__ instead of kwargs['saltenv'] in error
Don't pass __env__ to cmd.script func

This is deprecated, saltenv is what should be used here.
Merge pull request #11422 from terminalmage/env-param-fix

Fix for "env" param in cmd state/module