libindicate is supported in this patch (with some framework in place
to support others, such as libmessagingmenu if/when it comes down
the pipe). libindicate support must be configured with a ./configure
switch (which is one-half of #5607) and is off by default.
Note that this patch does not fully implement our design spec for
how new messages are cleared due to user interaction. That is
covered by #5669.
This introduces a configure script that automates the basic task
of setting up a CMake build directory. It also uses a top-level
Makefile (which the configure script generates, to prevent running
it until configure has executed) which does the build and copies
the final executables into the root of the source tree.