Less logic, same outcome while splitting strings.
Let's have the packages to install as the last arguments to the `pip` call.
Update mocked test case to have the package name as last argument to the `pip` call.
Added a mocked test case for `--log` passing to `pip`.
Added a mocked test case for `--timeout` passing to `pip`.
Test string argument on `pkgs`, `editable`, `find_links` and `mirrors`.
Add tests for proper protocols to `find_links`.
Added a mocked test case for `--index-url` passing to `pip`.
No extra whitespace is needed.
Added a mocked test case for `--extra-index-url` passing to `pip`.
Added a mocked test case for `--no-index` passing to `pip`.
Added a mocked test case for `--build` passing to `pip`.
Added a mocked test case for `--target` passing to `pip`.
Added a mocked test case for `--download` passing to `pip`.
Added a mocked test case for `--download-cache` passing to `pip`.
Added a mocked test case for `--no-download` passing to `pip`.
Added a mocked test case for `--source` passing to `pip`.
Added a mocked test case for `--exists-action` passing to `pip`.

* `exists_action` now only accepts it's valid settings, one of `s`, `i`, `w`, `b`, else, `CommandExecutionError`.
Added a mocked test case for `--install-options` passing to `pip`.

* Replaced all occurrences of `basestring` with the `string_types` from salt's `_compat` module.
* Properly split install options on commas.
* Install options need to be quoted.
Added support and a mocked test case for `--global-options` passing to `pip`.