Set permissions on existing directory

Previously, an existing directory would not have its permissions
modified by the __directory type. This change removes exiting early when
$state_is matches $state_should
do not need to create directories - git will do this - thanks to Steven

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
directory permission explorers

The group, mode, and owner are now pulled from a explorers. If the
desired value matches the existing value, then no code is executed.

If the recursive flag is set, the permissions are applied every run.
__git respects --owner and --group, add --mode

After checkout, chown and chmod as specified. If already present, but
not possessing correct permissions, run chown and chmod as needed.
Slackware os and os_version explorer support.
Merge branch '__git_permissions' of https://github.com/contradict/cdist
++changes recorded

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
Initialize variables to empty string

Set mode, group, etc. to an empty string to ensure that no external
environment variables can leak in.
Exit with no error if directory absent

Explorers need to handle the case of no directory.
Merge pull request #155 from statianzo/directory-owner

Set permissions on existing directory
Merge remote-tracking branch 'github/master'
Merge pull request #156 from contradict/__git_permissions

__git respects --owner and --group, add --mode
Merge remote-tracking branch 'github/master'
debugging not easily possible with loss of parameter_path

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
introduce MissingObjectIdError

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
prevent requirements from leaking into autorequired objects and creating circular references

Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>

Conflicts:
	cdist/test/autorequire/__init__.py
merge back the dependency resolver into pseudo master

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
use self.context, not self.local

Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
Fix to support FreeBSD's stat(1)

Added check for OS type
Added FreeBSD syntax in case of $os=freebsd
Add umask

Some directories were being created 700 and causing problems, added umask 022 to fix this