msvc: Enable GC

Msvc only declares the semi-standard _bss_start and _end variables (for compatibility I guess), but they do not point to the actual bss section used. That is appended to the end of the data section by the linker so it's not possibly to look it up (or I found no way). However putting all statics in a named section and then querying the executable to figure out where the section is, and use that for the GC, seems to work just fine.
Also see #625 - a couple of tests show the behaviour is now roughly the same as gcc builds.
The standard way to deal with compiler strict aliasing paranoia is to cast pointer to needed type via void*. Please try that before proposing unC ways like unions.

> plus that it only happens in Travis with a 5 year old compiler

I warned against such approach before, and would like to do it now. Unless you have powers to control each compiler for each architecture in each system in the world, and offer such powers at everyone's disposal at instant and for free, please don't tell people that their compiler is old, it's not productive at all. As a recent example, I finally got a SPARC board as an addition to my table drawer collection. Do you know which gcc version vendor provides as a default for it? 3.4.4, that's it.