1. Replace custom 'shared' option with the standard BUILD_SHARED_LIBS
flag
2. Replace foreach() calls for source items with target_sources() and
generator expression $<JOIN:>.
3. Remove build types definition: makes no sense for
single-configuration generators, and is populated automatically for
multi-configuration ones.
4. Add feature summary
5. Enahnce compiler flags management for static runtime by utilizing functions
from the ucm project
6. Copy almost all options from the Jamfile.
7. If compiler supports C++14, use it.
8. Raise minimum required CMake version to 3.11 and drop bundled FindIconv.cmake
Add finding OpenSSL for examples (on Mac it's common for OpenSSL
installed via Homebrew to not be on normal paths, so find it via
CMAKE_PREFIX_PATH). Also make the example cmake helper script
executable.
This is necessary because the client_test example spans multiple
files, so creating an executable for each one separately doesn't
make so much sense anymore.