make it compile with clang

Today I was sufficiently annoyed that the dune-cornerpoint build breaks on clang so that I fixed it. Basically "fixing" means avoiding cyclic class usages, but this is pretty fragile code as everything depends on the order of the includes. Having said that, it only makes the current situation quantitatively worse not qualitatively.

Also, there is another build breaker on clang: In `CpGridData.hpp` it complains that the static cast to `GlobalIdMapping*` does not work so I changed this to a `reinterpret_cast` and added a `#warning`. If you deem this to be okay, I'll remove the warning before you press The Green Button.