Normalize context data for user providers

This commit makes all user modules use __context__ in the same place,
and have the context variables be named the same. This is so that the
user state can clear the context data, allowing it to be able to tell
what has changed.

Additionally, this commit also reverts some changes that I made a couple
week ago. I was looking for a less wasteful way to get user data for a
given user, and the user state was running user.getent and then looping
through the list of user info dicts. I added some code to the various
user.getent providers at that time that allowed getent to optionally
return the info for a single user. It turns out, the user providers
already have a function that does this: user.info. The user state has
been updated to call user.info rather than user.getent, and the
additional logic that was added to the getent functions in a558d84,
449b1e2, 44ec713, and 031f8f6 has been removed.
groupadd.py: normalize context variable name for group.getent
Add __context__ support for group.getent

This commit adds the same __context__ support present in groupadd.py to
the following providers: pw_group.py, solaris_group.py, win_groupadd.py
Merge pull request #4372 from terminalmage/issue4336

Properly detect changes to groups made by user states