(PUP-1085) Fix pacman support for package groups.

As I wrote in https://tickets.puppetlabs.com/browse/PUP-1085, I don't think the issue of package groups for the pacman provider is sufficiently solved in puppet.

These patches solve the following problems:
- The provider regarded a package group as present as long as a single package of that group was present. It will now regard the group as absent when it's not fully installed.
- The provider could not determine the version of package groups. Pacman has no concept of versions of groups (they are essentially just package name lists), but we can construct a "virtual" group version by concatenating the package names + versions together. The provider will now for example detect version mismatches between the currently installed packages of a group and their latest versions. See the commit message of 1fa43e8dfc0a959ca26cfb34fedcfdd9cdc20005 for an example of this.
- When installing a group, --needed was not passed triggering a reinstallation of the whole group. It is passed now.
- The provider was missing the virtual_packages feature, so installation of groups could not be configured by the user via allow_virtual.