Feature/move advection class
This MR concerns a restructuring of the handling of advection objects:
- Advection terms in IncNavierStokesSolver now derive from the SolverUtils Advection base class
- A new AdvectionSystem holds the Advection term at Driver level and sits between UnsteadySystem and a specific solvers EquationSystems (to allow Advection objects to be manipulated at Driver level)
- Moved instantiation of the extrapolation terms to the most derived classes in IncNavierStokesSolver. Previously m_fields needed to be initialised (through a call to UnsteadySystem::v_InitObject()), the m_pressure pointer set, and then the extrapolation term initialised through calling IncNavierStokes::v_InitObject(). However, this now also calls UnsteadySystem::v_InitObject resulting in m_fields being initialised twice and m_pressure and m_fields[m_nConvectiveFields] being different.
- Some tidying up of the advection term code.
A similar structure can be adopted for the diffusion terms. The AdvectionSystem class therefore inherits UnsteadySystem virtually to allow this to be implemented.