cmake: FindIce: Additional improvements

This is the result of a few rounds of review with the cmake upstream developers:

- logic greatly simplified and more maintainable
- detects Windows Ice packages using the registry
- much easier to override autodetected programs/libs/paths with cmake cache variables
- follows cmake `find_package` conventions

--no-rebase

--------

Testing:

- jobs should remain green
- Should build on all platforms with:

```
GTEST_ROOT=/path/to/gtest cmake -DICE_DEBUG=ON  /path/to/openmicroscopy
```

- For the special case of MacOS X with an **unlinked homebrew Ice** *and* **XQuartz installed**, add the options (for example):

```
-DICE_HOME=/usr/local/Cellar/ice/3.5.1 -DICE_ICE_LIBRARIES=/usr/local/Cellar/ice/3.5.1/lib/libIce.dylib -DICE_SLICE_DIR=/usr/local/Cellar/ice/3.5.1/share/Ice-3.5/slice
```

This is because the ICE_HOME layout is nonstandard, so the slice directory needs specifying manually.  ICE_ICE_LIBRARIES should be unnecessary--it was for me after I started from a clean tree.  If not, ICE_ICE_LIBRARIES overrides the incorrect autodetection.  Thanks to Apple and ZeroC for case insensitivity and reusing existing library names; MacPorts works around this by calling it something like libZeroC-Ice.dylib to work around the problem.
Why does this use capitalised `ICE` while the other options use `Ice`?