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
revise contrib/masterfiles/git-failsafe.cf: add umask to update and clone commands
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.
contrib/masterfiles/git-failsafe.cf: Reverse accidental switch of git_resolve_cloned and git_resolve_updated classes.
Updated fail messages to include failed assert data.
Use local variable for assertname in order to avoid string duplication,
for assert failures.
Minor edits to assertname location for fail reporting to xml.