doc: Add missing <Service> attribute value

Add "interactive_only" to the list of supported <Service> mode values.
Minor change to better use Sphinx syntax for environment variables.

Has the benefit that environment variable names will now be visible in
the documentation index.
Minor edits to the glossary to make better use of Sphinx formatting.

Also added missing definition for client.
Added documentation on how to set up a virtualenv with Bcfg2 code.
Fixed typo in Sphinx markup. Should be 'command' instead of 'cmd'.
added Genshi template syntax checker, other misc. bcfg2-lint cleanup
fixed output from ohai plugin when ohai not installed
made info.xml files understand <Path> tags to better set permissions on altsrc'd files
scrub password from error messages
fixed doc bug
as per http://trac.mcs.anl.gov/projects/bcfg2/ticket/1026
piping stderr to /dev/null to prevent failure
Miscellaneous bcfg2-admin bug fixes:
* Fixed mode argument parsing when a config file is supplied
* Fixed loading help messages when Reports is not configured
* Improved option parsing; used Bcfg2.Options.OptionParser
bcfg2-admin: Revert some changes that are not py3k compatible

Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
Chkconfig: Use LANG=C to avoid locale conflicts (Resolves #1028 and #926)

Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
doc: Fix duplicate label warnings

Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
Fixed to accommodate changes made to Plugin.py in changeset 3291a875339a7e5569d4.

The changes to the INode.Match() function in changeset
3291a875339a7e5569d4 caused breakage in the Deps plugin, as it
inherits from INode. This commit adjusts the definition of the
predicate function in Deps.py to mirror the changes made to INode in
Plugin.py, eliminating the error about the wrong number of parameters
being passed to the lambda function.
Created a new method to return a sorted list of plugins by type.

Replaced many list comprehensions in Core.py with a new method named
plugins_by_type(), which does the same thing with an added twist: this
new method also sorts the list of plugins by a new field named
sort_order. It also uses the name of the plugin where the sort_order
values are the same.

This lets us control the processing sequence of plugins that need to
build on the results of a plugin that runs prior to them. The
immediate example is Deps, which should run after Packages has
generated the full list of packages to be installed. Prior to this
commit, it was impossible to control the order in which they ran. A
future commit will (hopefully) take advantage of this capability.

This commit also splits the Core.validate_data() method into two: one
for validate_structures() and one for validate_goals(), instead of
passing in a base class and using if logic. This approach seemed a
little clearer to me.
Refactor the validate_structure() method into two.

New method named calculate_prereqs() handles pre-req calculation.

Existing validate_structure() method now only handles memoization of
the prereqs and use of the prereqs to update the configuration.

Also added a sort_order value to cause this plugin to run after
Packages, so we can use Deps to add dependencies to implicitly added
Packages. NOTE: This doesn't work yet, as Packages adds BoundPackage
entries, and Deps doesn't yet realize they are equivalent to the
Package entries it knows about. This will be fixed in a future commit.
Treat Bound entries like unbound entries for calculating prerequisites in Deps.
Added docstring to explain what 'datastore' argument contains.