cmake: Add FindIce.cmake

Switch from extremely limited Ice autoconfiguration to a full cmake
find_package implementation.  This

- autodetects Ice on all major platforms
- allows building with all supported Visual Studio versions on Windows
- autodetects the slice path on most platforms
- does version checking to ensure the Ice version is correct
- separately detects the Ice programs, headers, slice files and
  libraries so that any configuration or installation errors can
  be accurately reported, making diagnosis of Ice problems much
  simpler

On most platforms, it will now be possible to build without
explicit configuration of any Ice settings such as ICE_HOME and
SLICEPATH.  Where configuration is required, it will be
sufficient to set ICE_HOME or ICE_SLICE_DIR for most common
cases, while also allowing finer-grained configuration if
required.

If doing an out-of-tree cmake build, the autoconfigured Ice
settings are also used when running the java build for source
generation.  In-tree builds however will still require Ice
configuring up-front to allow the main build to work, though
build-cpp can still take some advantage of FindIce.
cmake: FindIce: Correct documentation
cmake: FindIce: Add additional Unix fallbacks
cmake: FindIce: Portability fixes for cmake <= 2.8.11
cmake: FindIce: Correct capitalisation of Ice
cmake: Drop internal use of SLICEPATH

It no longer has any effect since replacement with
ICE_SLICE_DIR.
Merge pull request #2920 from rleigh-dundee/cmake-ice

cmake: Add FindIce.cmake