Future of `Implementation` typedef in `Entity`, `EntityIterator`, elsewhere(?)

We decided to remove the DUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS macro by making the impl() method public and removing boundaryId() from the public interface at the developer meeting.

We also had some talk about the Implementation type (for Entity), but no decision in the end (as far as I remember). Options included:

  1. Keep Implementation
  2. Keep Implementation and add a Impl alias
  3. Remove Implementation; users should rely on std::decay_t<decltype(...)>
  4. A Dune::Implementation<Entity> type

For (2.), I would like to add that Impl is already used for the implementation detail namespaces. Having a type with the same name might be confusing.

The question what to do came up again as part of !164 (merged) which removed the Implementation type from EntityIterator and my proposed fix in !166 (closed) (which would implement (1.); I don't mind adding a notice to the typedef as planned for the .impl() method).