Made the acceptance test template more Windows friendly.
(cherry picked from commit c1cf05a1984980c5fda172454679deb415de70cb)
Don't return FNCALL_FAILURE in FnCallReturnsZero.

While it might seem more correct, for "returnszero()" it has the
unintended side effect of making this policy

  classes:
    "commandfailed" not => returnszero("/bin/nosuchcommand", "noshell");

not set the "commandfailed" class. This happens because FNCALL_FAILURE
will never set *any* class, regardless of the negation used.
Support code for Windows Powershell support.

Powershell is implemented for all promise types/functions where
useshell is supported, which are:
  - execresult()
  - returnszero()
  - "commands" promise type

For the two functions, one can now specify "powershell" instead of
"noshell" or "useshell". The "commands" promise type previously
supported only boolean values. These are retained for backwards
compatibility, but the new, preferred keywords are "noshell",
"useshell" and "powershell".

Also removed the need for shell commands to start with a word that is
an absolute filename. Anything you'd want to use a shell for will
defeat this security measure anyway (pipe, chained command), and it
doesn't go well together with shell builtins on either platform (Unix
or Win).

Absolute filenames are still enforced for the "noshell" type.

This solves issue 2143.
Updated documentation for new powershell support.
Added powershell hard class on Windows.

Part of issue 2143, to make Powershell more convenient to use in a
potentially heterogenous environment.
Merge branch 'master' of git://github.com/cfengine/core into winPowershell

Conflicts:
	cf-agent/verify_exec.c
	libpromises/evalfunction.c
	libpromises/exec_tools.c
	libpromises/unix.c
netinet/ip.h requires netinet/in_systm.h

In Linux and other Unixes this is implicitly included, however in
some more exotic Unixes we need to explicitly include it.
Merge pull request #658 from cduclos/master

The joys of exotic unixes
My ChangeLog entries.
fix for redmine #2635
Merge pull request #655 from kacfengine/winPowershell

Powershell support
Merge pull request #661 from kacfengine/changelog

My ChangeLog entries.
Merge pull request #652 from sigurdteigen/cleanup/hacking

Update HACKING
s/CfOut/Log to fix compile error
Redmine #2675: /bin/bash is not available on all supported plaforms

The test script test/acceptance/08_commands/01_modules/003.cf.script
uses a /bin/bash shebang, and the Bash shell is not available on
stock HP-UX systems among others, preventing the test from running
properly. This commit changes bash to sh to conform with all the
other test scripts.
Merge pull request #665 from mvpel/redmine_2675

Redmine #2675: /bin/bash is not available on all supported plaforms
Merge pull request #662 from jeffali/fix/2635

fix for redmine #2635
Redmine #2573; correct mistake in placement of pragmas

The #pragma is not allowed inside functions, so move it outside.
Merge pull request #666 from kacfengine/hpuxFix

Redmine #2573; correct mistake in placement of pragmas
Take alternative workdir into account in test.