Msvc2012 fixes

These patches allow to build on "MSVS Express 2012 for Windows Desktop (Update 1)". Details in commit messages.

I have not tested on older versions of Visual Studio. The fci.lib->cabinet.lib change should be ok back to VC6 (Windows SDK 5). If you want to support something before that then I can make the change optional based on MSVC version check.

ping @jcfr