Basic support for risk calculators in commonlib

The tests are green: https://ci.openquake.org/job/zdevel_oq-commonlib/173/
Notice the companion on risklib: https://github.com/gem/oq-risklib/pull/80
You are missing the difference between an abstract method and a method raising a NotImplementedError. The first one MUST be implemented, otherwise, the class cannot be defined.
The other does not need to be implemented, and it if is never called (which is the case for a sequential calculator, which has no core_func) it never raises an exception.