Added support for vbox (libvirt VirtualBox driver)

Added support for the libvirt VirtualBox driver, identified as "vbox".
Added support for guest_environments under darwin

Added support for some values of environment_type when running under
Darwin. The only local type supported is vbox, and all the remote
types are supported.
Fix incorrect example usage of files_single_copy. Closes mantis #1235
add contrib/masterfiles/git-failsafe.cf
revise contrib/masterfiles/git-failsafe.cf: better update command; make update and clone commands configurable; overwrite .git/config when necessary
Introduce ReportContext for core reporting.h

The ReportContext holds a set of file descriptors for supported
output types (e.g. HTML). Now that a context is required for writing to
reports, and many low-level functions potentially write reports, a
const ReportContext is passed down from the top-level. Generic agent
functions Open/CloseReports(agent type) is now responsible for creating
and destroying the context.

This removes globals FREPORT_TXT and FREPORT_HTML
Add proper body name to parameterized body example. Closes #1264
Merge branch 'cleanup/writer-for-reporting'

Conflicts:
	src/cf-serverd.c
	src/cf3.server.h
revise contrib/masterfiles/git-failsafe.cf: add umask to update and clone commands
Merge pull request #94 from nickanderson/fix/bug_1264

Add proper body name to parameterized body example. Closes #1264.
rename variable - don't use negative names as it is confusing (especially when you get double negation from exclaim mark)
Two path-string helper functions
Helper function to check if a promise should be enforced or not (dry-run/warn policy). This is a condition spread all over the code - migrate to EnforcePromise instead for clarity.
honour dry-run and warn-only mode when creating parent directories for links. fixes #926
Acceptance test for editline order reversal, bug 809.

Lines inserted into files, with insert_type => "preserve_block" and location => start,
were being inserted in reverse order. This test helps to verify that the bug was solved,
and lines are now inserted in the correct order.
test for #926
fix parameter mix-up
Remove declaration of Writer from cf3.defs.h

This resulted in a duplicate declaration because cf3.defs.h includes rlist.h,
which it shouldn't, but probably does for temporary considerations. Consider
this a temporary fix too.
Squashed commit of the following, but removing files that are no longer
necessary:

- CUnit-Run-Files.h
- alphalist_test.c.xml
- crypto_symmetric_test.c.xml

commit 32b8a2636d50e068096f0359d37c162cadbf6f06
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Tue Jul 31 11:01:57 2012 +0200

    Update error reporting for XS schema and general cleanup.

commit 7c62fc8012d7367fbf32d979377529d9ca909ef9
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Mon Jul 30 14:58:29 2012 +0200

    Remove .xml extension from temporary xml files.

commit f87eab206adfd9aac51a45233c225cae44aedeea
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Mon Jul 30 12:52:58 2012 +0200

    Do not print xml for file_writer_test.

commit bb2f69e29b94ff41314d1edf59c015031b0fd495
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Mon Jul 30 09:46:45 2012 +0200

    Time to run testsuite and testcase.

commit dd84fbcef044186d15243200939c5ee83ff44a86
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Mon Jul 30 08:34:26 2012 +0200

    Remove new line after timestamp.

commit 95fe9a8607f56baeb0d858ae5426d6d7310eb9b0
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Fri Jul 27 17:04:25 2012 +0200

    Switching xml output schema from CUNIT to XS.

commit 4d59c78056ef1af498e0478714d7c8275581dd69
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Fri Jul 27 10:41:12 2012 +0200

    Update buffers and writing to CUnit-Run files.

commit 63260d4766111b52ed659a6920cfa762ade277aa
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Fri Jul 27 09:02:19 2012 +0200

    uncomment a line

commit 3a4fa7ba06a9e92bb6edff10d30e43522f1002d7
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Fri Jul 27 08:50:17 2012 +0200

    adding functionality to write CUnit run files, to support shaddow builds in unit testing

commit dbc31308a90f8f36e95eed4753e2b514e6952d2d
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Thu Jul 26 14:58:21 2012 +0200

    Redirect xml output in cmockery unit testing.

commit 7ebddb69405c4f07af41b499887837d076da3005
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Thu Jul 26 14:50:23 2012 +0200

    Implement schema header and corresponding print statements with print formatting
    for CUNIT and XS schema output to xml.

commit 2d8eff54b13ffb65b4207311d5224caf1494048a
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Thu Jul 26 09:36:50 2012 +0200

    More updates to cmockery output to xml funtionality.

commit 9e8a2ae12dc88add8b8486ea810013db88062094
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Tue Jul 24 15:40:57 2012 +0200

    Still working on cmockery testing... should not segfault.

commit e0ad44da7dc599c7ec08a28b99286b2ccaeea02d
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Tue Jul 24 14:48:33 2012 +0200

    updating unit testing features for cmockery

commit 9e207a0f01640e785870bbb7f2a3b686a2ed4502
Author: Shauna Thomas <shauna.thomas@cfengine.com>
Date:   Thu Jul 19 17:00:37 2012 +0200

    Implement functionality for printing testing results to xml files.

    Implement functionality that extends cmockery reporting and will produce a unique
    .xml file for each testsuite that is run. xml files are created in /xml folder.
    CUNIT format is used for xml output.
    that is run.
contrib/masterfiles/git-failsafe.cf: Report and distinguish git update/clone operations.  Add idempotent_git class that users can enable for easier testing.