OmeroCpp: switch build system from SCons to CMake (dev_5_0)

Backported from the existing develop PR.  Exclude for now.
--rebased-from #2797
--exclude

This PR has been opened before.  The main change since the last PR is that cmake is (optionally) now invoked through ant to act as a drop-in replacement for the scons build.

Jenkins jobs not yet updated.

Testing:

Ensure `SLICEPATH` or `ICE_HOME` are set, plus `GTEST_ROOT` if gtest is available but not on the default header/library search paths.  gtest is optional; tests are only built if it is available.

In-tree with ant:
- the existing build-cpp target will continue to work, as will targets in `components/tools/OmeroCpp`
- still requires `build-default` running first due to the broken/missing dependencies at the toplevel
- additional `release-cpp` target to install and zip up the binary build; embedded os/version/architecture strings could possibly be improved; currently uses the ant `os.*` variables.
- no parallelisation due to the ant build being broken
- some limited scope for passing options to cmake via ant properties

Out-of-tree with cmake:
- buildable by running `cmake /path/to/sourcetree`; this gives the end user full control over the cmake invocation, which is absent/restricted when running via ant.  While the ant targets are probably best for integration testing, end users will want to use this to be able to properly customise and install it.
- if gtest is present (set `GTEST_ROOT`), tests are built.
- fully parallelisable
- all cmake options may be used freely
- still requires a full java build, but this is executed internally during the cmake run

For both builds, to be completely sure the build is unchanged from the scons build, compare that no `.o` files are missing (run `find . -name '*.o'`; the scons build uses a nonstandard object suffix if I recall correctly) and you can also check the link command used by running make with `VERBOSE=1`.  To be extra sure the shared library is unchanged, compare the symbol tables (nm -D libomero_client.so).  There may be unimportant minor differences due to cmake using subtly different compiler options.

Windows:
- unfortunately due to unrelated Ice issues, it's not possible to fully test on Windows at this time; may need some portability tweaks once the Ice issues on Windows are addressed.

Main differences between scons and cmake systems:

- no source copying with cmake; generated cpp sources are discovered and used in place; Ice sources are discovered, and `slice2cpp` is run on demand with full support for parallelisation due to having as complete a dependency graph as is currently possible (the model/dsl generation still requires a full java build, unfortunately)
- tests are built by default if gtest is available and are runnable using "make test" or "ctest"; `ICE_CONFIG` requires setting as before.  rpath is set so that the tests are runnable in-tree without any need to set platform-specific `LD_LIBRARY_PATH` or `DYLD_LIBRARY_PATH` variables`.
- examples are now built by default (scons examples build was broken for some time and was not built by default)
- much more flexible compiler and system detection and adaption e.g. for detecting and enabling threading, all cmake options and generators being available
- much more strict compiler warnings; build is rather more verbose indicating outstanding issues which need addressing separately (warnings can be tweaked also)
- the client headers and sources were split up to try to build the components of `omero_client` separately.  This didn't work, but most of the logic has been retained to make any future work simpler; the git history was also retained so this can be backed out completely if desired.
- `OMERO.cpp` source zip is no longer produced; the build is done entirely in the source tree
- Binary zip of the install tree is made by the jenkins jobs from the `make install` content.

/cc: @emilroz @dpwrussell @joshmoore