DuMux 3 - an open-source simulator for solving flow and transport problems in porous media with a focus on model coupling