Fix unwind passing of REDUCE

This fixes CureCode issue #1760: "Unwind functions don't propagate from
REDUCE".
Fix unwind passing of WHILE

This fixes CureCode issue #1519: "Unwind functions don't propagate from
WHILE condition block".
Fix unwind passing of set-word! and SET

This fixes CureCode issue #1515: "Unwind values are assignable with
set-word expressions, SET or SET/any".
Fix unwind passing of functions accepting error!

This fixes CureCode issue #1509: "Unwind functions don't propagate when
called in function arg expression that accepts error! values"
Fix unwind passing of APPLY
Fix unwind passing of set-path!
Initial CMake build for Linux
CMake build support for OSX and Win32

TODO: "make prep" code generation targets.
Add "prep" code generation step to CMake builds
CMake build basic support for MSVC
CMake: fix Win32 MinGW/MSVC detection
CMake Win32 MinGW: remove unused libm dependency
Fix unwind passing of AJOIN
Add comments to point to where unwinds are handled
Merge remote-tracking branch 'earl/fix-unwind-passing' into base
Fix for SET object!/block! block! (#1763)

See http://issue.cc/r3/1763
- SET object!/block! block! acts like SET/any.
Also fixes http://issue.cc/r3/1515 for SET object! thrown-value.
Revert "bug#1939"

This reverts commit b1e845bf5c1d9402ab0c20b1080071b687aa86b0.
Fixing various errors