Fixes #3797 Handle requirement specifiers in pip.installed state

The `pip.installed` state will now double-quote the named package and take precautions to make sure comma-separated requirement specifiers are not treated as different packages in the `pip.install` function.

Additionally, when attempting to find if a package is installed via `pip.list`, it cuts off all requirement specifiers so that `pip.list` will correctly identify if that package is installed.

NOTE:  We are not currently verifying that the package version installed matches the requirements specifiers.