Removes call_petsc.c and calls the lib from C++

call_petsc.c was really a thin C wrapper around the call to petsc itself and
turns out was mostly unnecessary C++ emulation. This removes the file entirely
and ports its functionality into LinearSolverPetsc.cpp.

All features from the file should now be more readable as well as properly
utilising modern C++ features.

The patch uses the CHKERRXX macro from petsc to handle errors reported by
petsc, and currently does not handle this and give the control back to OPM's
error/throw system.
Makes using wrong constructor a compile-time error

Petsc only supports initialisation through the ParameterGroup constructor.
Calling the default, non-arg constructor is a static error, and not
implementing it makes using it break compiles.
Petsc constructor now uses intialiser list.

The previous implementation set plenty of values in the initialization list and
immediately overwrote these values with values looked up from the param group.
This patch makes it look up the parameteres from the param group argument,
making the constructor simpler.
Defines now makes petsc error handling implicit

As seen in the comments in the patch, the error check macros are terrible to
read and write. Therefore they have been gathered in a set of defines in the
top of the file to make the actual code nicer to read, a the cost of some minor
maintenance when adding new petsc functions.