Abort if compiler is not MSVC.

We'd need some tweaks for MinGW, let alone to make this work on other
operating systems. MSVC is the only tested platform/compiler, so I'll
only allow running this CMake code if using MSVC.
Add 'patch' from gnuwin32.

Added an ExternalProject to download the 'patch' tool from gnuwin32,
as a precompiled binary. We'll need this to patch protobuf files.

But Windows by default considers executables named 'patch' as being
installation tools needing admin privileges (wtf?), so we also have to
embed a manifest to override that.