Dune for Multi-{Phase, Component, Scale, Physics, …} flow and transport in porous media: a free and open-source simulator and research code written in C++