Forward declarations necessary for OPM simulators

This is modelled the same way as <iosfwd>; if you need to mention the
OPM simulators, but don't want to pull in all the headers, you can use
this header to do all the forward declarations. (Note that it doesn't
pull in all the headers; you'll have to do that yourself, but hopefully
in the compilation module).
Common interface for simulators as well as adapter

Using this adapter we can have simulators with different types acting
like one to the upscaling wrapper.
Put template part of wrapper into header

Together with the adapter this allows us to use any simulator class
that supports the given methods, even if they don't inherit from the
same base ("duck typing").
Merge pull request #40 from rolk/040_wrapper

Generalize wrapper to handle more simulator types