On Windows, use g++ for linking, instead of gcc.
This is required in order to produce linked modules that perform correct registration of unwind tables.
Un-disable stack unwinding on Windows.
Emit unwind info in rustrt assembly files on Windows.
Compile via external assembler on Windows.
Enabled tests.
Cleanup assembly source.
Enable unit tests.
auto merge of #8596 : vadimcn/rust/master, r=brson

This resolves issue #908.  

Notable changes:
-  On Windows, LLVM integrated assembler emits bad stack unwind tables when segmented stacks are enabled.  However, unwind info directives in the assembly output are correct, so we generate assembly first and then run it through an external assembler, just like it is already done for Android builds.

- Linker is invoked  via "g++" command instead of "gcc": g++ passes the appropriate magic parameters to the linker, which ensure correct registration of stack unwind tables in dynamic libraries.