Make entire library code compile on MSVC & gcc.

Could we make the return type use
```
#ifndef _MSC_VER
  std::vector<typename Container<dim,spacedim>::active_cell_iterator>
#else
  std::vector<typename _active_cell_iterator<dim, Container<dim, spacedim>, spacedim>::_type>
#endif
```
This has the advantage that the documentation will still show the old type, which is much easier to read for most people.