Optionally pass spatialParams to problem in constructor
I think it would be nice for flexibility to have another constructor for problems where the spatial params shared_ptr can be passed from outside. This way we could create a spatial params object outside e.g. with additional information like grid parameters (see #431 (closed)) and the problem class doesn't need to know how to construct it.