Simulation Traits

What does this MR do?

This MR proposes to modify the current Trait system for one that can manage more than one model as is wanted in #73 (closed). In many regards, this MR is very similar to the changes done and discussed in !30 (closed) with respect Traits.

Particularly, everything specialized trait still depends on the BaseTraits class. However, now each model has its own traits that define all the needed types for the simulation.

Since models can have differences regarding the orders of polynomials of the FEM, the argument order was removed from BaseTraits and delegated to the specific model Traits, in this case, that is done in RichardsSimulationTraits. (To be consistent, it was also added as an argument for the AdaptativeHandler and its factory).

It was removed the template template parameter from the Grid in BaseTraits, and the template dimension argument. Reason: every dune-grid exports the dimension. Therefore, there is no need for templates deduction.

Since this is done to support several models, this MR already renames the Simulation object to RichardsSimulation and its respective files from simulation.* to richards_simulation.*.

Is there something that needs to be double checked?

The pipeline is failing because of conservation of mass test. This MR shouldn't modify anything there that doesn't fail at compile time, then, I am beginning to think this is due to some problem with the CI itself.

Changes in traits should not change anything for the user and a passing pipeline (i.e. successful compilation) must suffice as a test.