Refactor BlackoilState and TwophaseState to have a common interface for writing

The purpose of this patch is to have a common interface for both BlackoilState and TwophaseState so that Andreas' BlackoilEclipseOutputWriter in opm/opm-autodiff#52 can be ported to serve both these types. I think I have been careful not to introduce any incompatibility in the existing code (such as allowing BlackoilState to be passed to an IncompTwophaseSimulator).

I also know that this could be done with a type-class/template solution; my personal taste is to avoid it since it inevitably leads to everything being in the headers, with all the dependency stuff that entails.

Note: Technically this conflicts with #419, but that one really fits nicely into this abstraction also.