Reformat CMake code.

In order to keep the commands aligned, use COMMAND for all of them,
even the first one.
Use a patch for the protoc.vcproj fix.

The project file for protoc isn't linking to the necessary libraries,
maybe because it relies on the .sln taking care of dependencies.
I was carrying a copy of protoc.vcproj with the deps added,
but now I replaced it with a patch.
Add MD5 hash for gnuwin32/patch download.
Add ExternalProject for enet library.

It uses the precompiled enet .lib from the tarball, instead of building
it from source, because the build system is .dsp (VC6) or autotools.
I may write a CMake-based build system myself in the future,
but for now it's easier to grab the .lib.
Fix protobuf build with Ninja.

The CMake docs say it's not guaranteed whether or not the working directory
is kept across commands, and my code was assuming it's not kept.
Now it should work in either case.