(maint) Do not use CMake's ExternalProject for vendored stuff

ExternalProject is great when vendoring a library with complex build
requirements, but it has some drawbacks. Specifically, it will ignore
the toolchain file that we use to make CMake find our special compiler
and library builds.

This commit removes ExternalProject, and instead embeds the vendored
libraries as part of the normal CMake build process. For rapidjson
this means pretty much nothing, since it is header-only. For gmock a
minimal CMakeLists.txt is added to build the gmock library and set
some variables for us.

The vendored versions of gmock and rapidjson in this commit are
stripped-down, since both contain a bunch of random stuff that isn't
needed for our build process.