(docs) Clarify possible exit codes and behavior with negative exit codes on Windows

When this is merged, please resolve DOCUMENT-11.
Technically, Windows exit codes are 32-bit *unsigned* integers. See http://msdn.microsoft.com/en-us/library/windows/desktop/ms683189(v=vs.85).aspx, where DWORD is defined to be ["A 32-bit unsigned integer. The range is 0 through 4294967295 decimal."](http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx).

The part that confuses people is that if you are running a cmd.exe shell, it will report exit codes as negative. But that's cmd.exe casting the unsigned value to a signed one, and displaying it as negative.

<pre>
C:\devkit_x64>cmd /c exit -1
C:\devkit_x64>echo %ERRORLEVEL%
-1
</pre>

Similarly .NET implements a runtime on top of the Win32 APIs, and it exposes exit codes as negative values: http://msdn.microsoft.com/en-us/library/system.environment.exitcode%28v=vs.110%29.aspx. But again that's the CRL doing that, not Windows.

Since puppet uses the Win32 APIs to determine the process exit code, the value will always be interpreted as an unsigned value. So I would say something like:

"On Windows, exit codes are 32-bit unsigned integers. If an `exec` command executes `cmd.exe`, and that exits with a negative exit code, Windows will report the exit code as an unsigned integer. Thus, -1 will be reported as 4294967295."

The real issue here is that we should have a `cmd` provider for the `exec` type, which could do the same exit code unsigned to signed cast, so then you could write `returns => [-1, 0]`