Establish and extend Fluid trait

This separation works out a Fluid trait that can be used for different
equations of state. It is implemented by a concrete type using an adiabatic
equation of state with an ideal gas and primitive variables as backend.
Move test into separate module

Thereby some privacy issues have been fixed.