Introduce `no_chown` option to pip-related functions - #4805

Affected functions:
- `pip.install`
- `pip.installed`
- `virtualenv.managed`

When using `runas` in conjunction with a local-filesystem `requirements` file with these functions,
`pip.install` will create a temporary copy of the requirements file,
then change ownership of that file to the `runas` user.

The purpose of this is to avoid file permission errors when accessing the original requirements file.
However, this breaks when that file has a "-r otherfile.txt" line.

In these cases, set `no_chown` to `True`.
The original path to the requirements file will be kept,
and other requirements files included from the top-level file will be correctly found.
Move caching of requirements to helper function and add unit tests.
Fix some formatting
Fix file.managed logic error related to `contents` arg
Merge pull request #4900 from OddBloke/multi_pip_requirements

Move caching of requirements to helper function and add unit tests.
Merge pull request #4908 from terminalmage/docs

Clarify docstring for salt.states.pkg.installed
Merge pull request #4832 from 11craft/4805-pip-no-chown

Introduce `no_chown` option to pip-related functions
Add docs for file:// in gitfs
Merge pull request #4910 from basepi/git4503

Better documentation for gitfs file:// remotes
update spec to 0.15.0
Merge pull request #4911 from herlo/develop

update spec to 0.15.0
Convert contents to string before writing to temp file
fixup to ae427f5654bf8492d6555783123acc89fa36e702
Be able to add entires to /etc/hosts
Be able to add entries to /etc/hosts
Be able to remove entries from /etc/hosts
Merge branch 'develop' of https://github.com/saltstack/salt into dnsmasq
Fixing weird merge conflict
Merge pull request #4918 from techhat/dnsmasq

Be able to add/remove entires to/from /etc/hosts
Adding support for S3 as a fileserver backend