Reduce Ice-generated C++ warnings

Rather than simply listing (and ignoring) all the warnings
that come with ZeroC-generated code we now suppress their
output at the cmake level.

In addition, using `cmake -Dfatal-warnings=true .`
will make all warnings an error which forces cleaning
up these issues.

/cc @rleigh-dundee @sbesson -- suggestions on better header names welcome.
Untested suggestion:

```
foreach(warning -Werror -Wno-switch-default -Wno-redundant-decls -Wno-overloaded-virtual -Wno-old-style-cast -Wno-deprecated-declarations)
  string(REPLACE " " ";" CXX_FLAG_LIST ${CMAKE_CXX_FLAGS})
  list(FIND CXX_FLAG_LIST "${warning}" FLAG_FOUND)
  if(NOT FLAG_FOUND EQUAL -1)
    list(APPEND ICE_FLAGS ${warning})
  endif()
endforeach()
string(REPLACE ";" " " ICE_FLAGS ${ICE_FLAGS})
```

Then use `"${ICE_FLAGS}"` with `COMPILE_FLAGS`