Add a test case to check for proper env selection when passing `?env=foo`. Refs #8196.
Correctly trigger the issue reported on #8196.
Forgot to add the top file.
Add required state file.
Log the env in use.
Set the proper `__env__` as a function global when calling the state function. Fixes #8196.

To achieve this we're making use of python's `with` context managers.
Initially we check if the user is passing `env` from his state definition. If he his, then that's the `env` to use for as long as the state function is being executed. Passing `env` is also being deprecated, the users should use the more meaningful and unique `__env_`.
If the user passed `__env__` in his state definition, that's the `env` to use, or, if no specific environment is being selected on the users state definition, then the default one, `base` is what will be used.

This change makes it so that **any state module function** does not have to accept `__env__` as a keyword argument.
Accepting `__env__` as a keyword argument is no longer required or aceptable
Accepting `__env__` as a keyword argument is no longer required or aceptable
Accepting `__env__` as a keyword argument is no longer required or aceptable
Accepting `__env__` as a keyword argument is no longer required or aceptable
Deprecated `env` as a keyword argument since `__env__` is now available within the function's global scope.
Deprecated `env` as a keyword argument since `__env__` is now available within the function's global scope.
Accepting `__env__` as a keyword argument is no longer required or aceptable
Updated test cases to include environment selection in states using `__env__`.
Include the `holy` directory for the `__env__` selection test cases.
State unit tests need to have an hardcoded `__env__`.
Withing the module, `__env__` is known.
The salt `pip` module no longer accepts `__env__` as `kwargs`.

It simply knows that from it's global scope.
The pip module no longer accepts `__env__` as a `kwarg`.
Support adding files to the testing prod state env.