Manipulating Linux /etc/group group members (Ref: Issue# 11102)

(1) modules/groupadd.py : Extending by adding three new functions.
adduser, deluser, members . For now it assumes an OS command ‘gpasswd’
is available
.

(2) states/group.py : states.group.present state function is refactored
(along the lines of states.users.present)  to support the following new
options.
  - addusers
  - delusers
  - members

This patch is for review now. This  is currently tested on CentOS(RHEL)
distributions.
Old group.present() state function is renamed as present_old() for now.
Refactor and modularize of the loader interface, adding Map to pyobjects

The problem with using the loaded states (see commit cc8539f) is that
you can end up in situations where a particular state doesn't exist for
whatever reason. This prevents you from building states freely (see
ticket #10918).

The refactor focuses on breaking out the `gen_functions` function into a
number of smaller reusable functions so that pyobjects can load all of
the states and still process `__virtual__()` and `__virtualname__` in a
way that makes sense for building states. After all pyobjects is just
compiling a high state data structure, if a state is available or not
during application time is up to the minion.

As part of this refactor I have also updated all of the inline comments
in the loader to be more consistent with the way things are actually
working now (such as `__virtual__()` returning a string being
deprecated).

There are also some pep8 fixes to the loader file.

Fix #10918

----

This also adds a new feature to pyobjects named `Map`, which allows for
definition of grain dependent data in a pythonic way -- using inner
classes.

----

Lastly this ditches the instance based registry and instead uses a class
based approach like a singleton.
Query TXT records
Avoid unnecessary getgrall code. Use getgrouplist if available
Add salt-git-ssh script to pass the ssh identity to the git command.
Use salt-git-ssh script as the GIT_SSH command for git when using
private keys on ssh based repositories.
Removed unused import tempfile.
Moved git wrapper script to the package templates directory
Fixed templates package reference in git module
fix(config/master): typo
Display trace on args error with enought log level
Merge pull request #11226 from JensRantil/fix-master-config-typo

fix(config/master): typo
Merge pull request #11219 from dmyerscough/develop

Query TXT records
Yay systemd.daemon.notify

requires the python2 systemd bindings
Merge pull request #11231 from gtmanfred/develop

Yay systemd.daemon.notify
Remove unnecssary "as" clauses from exceptions

Also changing some of the "as" clauses to use "exc" rather than "e", for
consistency.
Add ignore_retcode argument to cmd.run* funcs

As of 2014.1.0, all cmd.run* funcs will log stderr to the minion log as
well as a notification that the command failed, when the return code is
nonzero. However, there are instances in which you expect to have a
nonzero return code, which don't constitute an error. See
https://github.com/saltstack/salt/issues/11154#issuecomment-37590775 for
more information.

This commit adds an ignore_retcode argument which, if True, will
suppress the potentially misleading log entries saying that the command
failed.
Suppress error logging for nonzero retcodes in version_cmp
Suppress error logging for grep in timezone module

It's perfectly normal for grep to not find anything here, so there is no
need to log an error when the grep returns an exit status of 1.
Log sysctl key listing at loglevel TRACE